我有一组csv文件,对于每个文件,第一行包含数据集的列名.某些csv文件具有所有大写列名称,其他csv文件具有所有小写列名称.我的问题是如何更改每个csv文件,以便每个文件的第一行(也就是列名称)显示为每列中的所有大写字符串?
我对它的尝试如下:首先,我手动检查所有文件以查看哪些文件具有大写和小写的列名,然后运行以下命令:
head -1 uppercase.csv > header.csv
#repeated all commands below for all lowercase files individually
sed -i 1d lowercase.csv 
cat header.csv lowercase.csv > lowercase_new.csv
rm lowercase.csv
mv lowercase_new.csv lowercase.csv
我想知道是否有更自动化的方法来执行此操作,而无需手动浏览每个文件.
Dataset1.csv
a b c
x x x
Dataset2.csv
A B C
y y y
如何使Dataset1.csv如下所示?
A B C
x x x
以下简单awk也可以帮助你.
awk 'NR==1{$0=toupper($0)} 1'  Input_file
说明:: 
NR==1如果是第一行,则检查条件,然后执行以下操作:
$0=toupper($0) 将当前行的值设置为UPPER CASE并保存到它.
1 awk 在条件的方法,然后行动,所以我在这里条件为TRUE,并没有在这里提到任何动作,所以默认情况下将打印当前行.
如果您想将输出保存到Input_file本身,请在上面的解决方案中附加以下内容> temp_file && mv temp_file Input_file.其中Input_file是您要更改或传递给的数据文件awk.
| 归档时间: | 
 | 
| 查看次数: | 1060 次 | 
| 最近记录: |