Shell 在csv中的特定列中填充值

Shell 在csv中的特定列中填充值,shell,unix,awk,scripting,Shell,Unix,Awk,Scripting,我有一个文件夹,里面有50张CSV格式的excel表格。我必须在该文件夹中所有图纸的I列中填充一个特定值,如“XYZ” 我是unix新手,已经查找了几页和。谁能给我提供一个示例脚本开始 例如: 假设在本例中为C列: A B C ASFD 2535 BDFG 64486 DFGC 336846 我想将列C更新为值“XYZ” 谢谢。我会将这些文件导出为csv格式 -使用semikolon作为字段分隔符 -最

我有一个文件夹,里面有50张CSV格式的excel表格。我必须在该文件夹中所有图纸的I列中填充一个特定值,如“XYZ”

我是unix新手,已经查找了几页和。谁能给我提供一个示例脚本开始

例如: 假设在本例中为C列:

A             B        C
ASFD         2535
BDFG         64486
DFGC         336846   
我想将列C更新为值“XYZ”


谢谢。

我会将这些文件导出为csv格式 -使用semikolon作为字段分隔符 -最后,省略列描述(否则请参见下面的注释)

然后,下面的SHELL和SED脚本组合可以或多或少地实现这一点

#! /bin/sh

for i in *.csv
do
        sed -i -e "s/$/;XZY/" $i
done
  • -我的意思是就地编辑文件,在这里可以将值附加到所有行
  • -e指定替换的正则表达式

您可能希望使用类似的脚本,如果csv文件还应包含列描述,则仅在第1行中将“XYZ”重命名为“C”。

@oguzismail添加了相同的内容。如果这是一个选项卡分隔的文件
awk'BEGIN{FS=OFS=“\t”}NR>1{$3=“XYZ”}1'file.tsv
应该可以工作。类似的问题:@oguzismail在这里不是一个循环,因为有50个这样的excel表格,我必须对所有的表格都做同样的操作。是的,一个for循环就可以了。