我有一个包含许多列的 csv 文件。我正在尝试用同一文件中的倒数第二列替换第二列。 例如,如果我有一个文件,sample.csv
1,2,3,4,5,6
a,b,c,d,e,f
g,h,i,j,k,l
我要输出:
1,5,3,4,5,6
a,e,c,d,e,f
g,k,i,j,k,l
谁能帮我完成这个任务?另请注意,之后我将使用 cut 函数丢弃最后两列,因此我愿意首先分离 csv 文件,以便我可以将一个 csv 文件中的列替换为另一个 csv 文件中的另一列。哪个更容易实现。在此先感谢您的帮助。
最佳答案
这个更简单的 awk 怎么样:
awk 'BEGIN{FS=OFS=","} {$2=$(NF-1)}'1 sample.csv
编辑:注意到您还想丢弃最后两列。使用这个 awk 单行代码:
awk 'BEGIN{FS=OFS=","} {$2=$(NF-1); NF=NF-2}'1 sample.csv
关于bash - 用 bash 中的另一列替换 CSV 文件中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17369202/