Bash 如何更改CSV文件的列名?
我有多个CSV文件,看起来像这样:Bash 如何更改CSV文件的列名?,bash,csv,Bash,Csv,我有多个CSV文件,看起来像这样: col1,col2 val1,val2 我想将每个文件中的col2更改为column2。如何使用Bash编辑CSV文件的列名?使用sed sed-i'1s/col2/column2/'file.csv 对于多个文件,可以使用循环: for f in file1.csv file2.csv file3.csv do sed -i '1s/col2/column2/' $f done 或者您可以使用find执行sed: find-name*.csv-exec
col1,col2
val1,val2
我想将每个文件中的col2
更改为column2
。如何使用Bash编辑CSV文件的列名?使用sed
sed-i'1s/col2/column2/'file.csv
对于多个文件,可以使用循环:
for f in file1.csv file2.csv file3.csv
do
sed -i '1s/col2/column2/' $f
done
或者您可以使用find
执行sed
:
find-name*.csv-exec sed-i'1s/col2/column2/'{}\代码>
这将用column2
使用sed
替换当前目录及其子目录中所有CSV中的col2
sed-i'1s/col2/column2/'file.csv
对于多个文件,可以使用循环:
for f in file1.csv file2.csv file3.csv
do
sed -i '1s/col2/column2/' $f
done
或者您可以使用find
执行sed
:
find-name*.csv-exec sed-i'1s/col2/column2/'{}\代码>
这将用column2
替换当前目录及其子目录中所有CSV中的col2
,这将更改任何行中的任何col2,即使它是数据的一部分。您可能应该仅将其限制为第1行……当我运行sed-I's/col2/column2/'$f
时,会出现以下错误:sed:-e expression#1,char 20:unknown option to
s'`@JerryJeremiah我如何将其限制在第1行?@JerryJeremiah我不希望数据与列标题相同。但是,是的,我应该。请参阅“编辑”。@Username如果仅在一个文件上尝试sed
,而不使用$f
,会发生什么情况?双引号$f可防止分词,这将导致sed失败。这将更改任何行中的任何col2,即使它是数据的一部分。您可能应该仅将其限制为第1行……当我运行sed-I's/col2/column2/'$f
时,会出现以下错误:sed:-e expression#1,char 20:unknown option to
s'`@JerryJeremiah我如何将其限制在第1行?@JerryJeremiah我不希望数据与列标题相同。但是,是的,我应该。请参见编辑。@Username如果只在一个文件上尝试sed
,而不使用$f
?双引号$f会发生什么情况,以防止分词,从而导致sed失败。