Avec une seule awk
commande:
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 f1
et 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 awk
et 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 ( NF
est l'index du dernier champ et $NF
la 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 awk
et paste
(option B)
Cette commande est également la même que ci-dessus ( $3
et $4
pointe 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 cut
commande:
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 ( -f1
indexé 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
).