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

时间:2017-09-23 01:28:14

标签: linux bash shell

在Linux中:

所以,csv有: Id,Profession等列名......

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

所以我认为你想要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。