linux cmd用于按列名搜索文件(.csv)

linux cmd用于按列名搜索文件(.csv),linux,bash,shell,Linux,Bash,Shell,在Linux中: 因此,csv有: Id、职业等列的名称 我必须按列名{'Profession'=>'Teacher'}选择特定的.csv文件。 如何在linux中运行cmnds? 我尝试使用grep,但没有按照我想要的方式工作。如果我们只知道列名和一个输入文件,第一行是列名,后面是数据,那么这是一个开始。我不是因为缺乏100%的清晰度而编码的。 我们将列名作为脚本参数。我们必须确定CSV文件中该字段的编号。这可以通过案例陈述来完成。 现在,如果我们知道列号,比如说5,就很容易使用cut命令。

在Linux中:

因此,csv有: Id、职业等列的名称

我必须按列名{'Profession'=>'Teacher'}选择特定的.csv文件。 如何在linux中运行cmnds?
我尝试使用grep,但没有按照我想要的方式工作。

如果我们只知道列名和一个输入文件,第一行是列名,后面是数据,那么这是一个开始。我不是因为缺乏100%的清晰度而编码的。 我们将列名作为脚本参数。我们必须确定CSV文件中该字段的编号。这可以通过案例陈述来完成。 现在,如果我们知道列号,比如说5,就很容易使用cut命令。
剪切-d“,”-f5 specific.csv

,因此我认为您希望grep csv的第一行,如果它有某一行,则返回它。但我不知道你的问题是不是说你也想把它转换成一个新的。如果你只想要前者,你可以:

echo $(find . -name '*csv' -exec head -n1 {} \;) | grep Tuesday
但是,如果您希望执行后一种操作:

for i in $(find $(pwd) -name '*csv'); do sed -i '1s/Profession/Teacher/g' $i; done

如果在Mac上,你需要使用gsed。

发布一点文件,以便人们可以帮助你,什么样的Linux-Ubuntu?森托斯?Mint?根据您的CSV的详细格式(嵌入引号/双引号?嵌入逗号?),您的mill命令行工具可能是一个糟糕的选择。如果格式很简单,并且字段中没有任何可能的分隔符,则可以使用awk攻击文件。正如@user2182349所指出的,你的“问题”本身并没有提供缺少答案的输入。