如何通过 Linux 上的命令行为 csv 文件中特定列的每一行添加前缀

如何通过 Linux 上的命令行为 csv 文件中特定列的每一行添加前缀
所以基本上我想实现以下目标。 

 

编辑之前归档。 

列 1、列 2、列 3、列 4、列 5
行 1-c1、行 1-c2、行 1-c3、行 1-c4、行 1-c5 行
2-c1、行 2-c2、行 2-c3、行 2-c4、行 2-c5
行 3-c1、行 3-c2、行 3-c3、行 3-c4、行 3-c5 行
4-c1、行 4-c2、行 4-c3、行 4-c4、行 4-c5
行 5-c1、行 5-c2、行 5-c3、行 5-c4、行 5-c5
 
编辑后的文件 

列 1、列 2、列 3、列 4、列 5
行 1-c1、行 1-c2、前缀行 1-c3、行 1-c4、行 1-c5 行
2-c1、行 2-c2、前缀行 2-c3、行 2-c4、行 2-c5 行
3-c1、行 3-c2、前缀行 3-c3、行 3-c4、行 3-c5
行 4-c1、行 4-c2、前缀行 4-c3、行 4-c4、行 4-c5
行 5-c1、行 5-c2、前缀行 5-c3、行 5-c4、行 5-c5

请注意,第 3 列是添加到除列标题之外的每一行的前缀的列。 

答案1

$3分别用要更改的列的编号、<prefix>前缀、<inputfile>输入<outputfile>文件名和输出文件名替换。

awk '{$3="<prefix>"$3; print}' <inputfile> ><outputfile>

我注意到您的示例中第一行未被修改;如果您想要这种行为,请改用以下命令:

awk '{if(NR==1){print; next}; $3="<prefix>"$3; print}' <inputfile> ><outputfile>

相关内容