Avec une seule awkcommande:
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
Obtenez une ligne à partir de file1 et stockez-la dans une variable locale f1, puis imprimez la ligne qui a stocké dans f1et enfin imprimez les troisième ( $3) et quatrième ( $3) champs du fichier1 qui ont délimité ,complètement par une virgule , et changez l'OFS (séparateur de champ de sortie [espace par par défaut]) en virgule ( ,).
La commande courte serait comme ceci:
paste -d, file2 <(cut -d, -f3- file1)
A B C D
A B C D
A B C D
A B C D
collez le fichier2, puis coupez et collez la troisième colonne à la suivante ( -f3-) du fichier1.
Avec awket paste(option A)
La commande ci-dessous copie également les deux dernières colonnes ( C,D) du fichier1 à la fin de chaque ligne du fichier2:
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
Au-dessus de la commande, collez le contenu du fichier2, puis imprimez un délimiteur de virgule ( -d','), puis collez les deux derniers champs ( NFest l'index du dernier champ et $NFla chaîne dont est l'index NF. Il en $(NF-1)est de même du deuxième champ avant le dernier champ) de file1 lorsque cet index redéfinit ou se sépare avec une virgule spectateur ( -F',').
Avec awket paste(option B)
Cette commande est également la même que ci-dessus ( $3et $4pointe vers le troisième et le quatrième champ de chaque ligne du fichier1):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
Ou une autre solution avec cutcommande:
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
couper la commande de la commande ci-dessus couper d'abord le premier champ ( -f1indexé avec un délimiteur de virgule ( -d.)) de file1 ( cut -d, -f1 file1), puis couper et coller le deuxième champ de file2 ( cut -d, -f2 file2) et enfin couper et coller la troisième colonne ( -f3) dans les nexts ( -) à partir de file1 ( cut -d, -f3- file1) à nouveau.
Cette commande renvoie également le même résultat:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
collez le deuxième champ de file1 ( awk -F',' '{print $1}' file1) puis imprimez une virgule ( -d,), puis collez la deuxième colonne de file2 ( awk -F',' '{print $2}' file2), puis collez à nouveau la deuxième et la dernière colonne de file1 ( awk -F',' '{print $3","$4}' file1).