给出csv输入文件
Id Name Address Phone
---------------------
100 Abc NewYork 1234567890
101 Def San Antonio 9876543210
102 ghi Chicago 7412589630
103 GHJ Los Angeles 7896541259
我们如何使用密钥grep /命令该值?
如果密钥100,预期输出是NewYork
答案 0 :(得分:1)
你可以试试这个:
grep 100 filename.csv | cut -d, -f3
Output:
New York
这将在整个文件中搜索值100,并返回匹配行的第3列中的所有值。
答案 1 :(得分:1)
使用GNU grep:
grep -Po '^100.....\K...........' file
或更短:
grep -Po '^100.{5}\K.{11}' file
输出:
NewYork
答案 2 :(得分:1)
Awk按空格序列分割行(默认情况下)。 您可以使用它在第一列上写一个条件。
在您的示例输入中,它看起来不是CSV而是具有固定宽度的列(标题除外)。如果是这种情况,那么您可以将城市名称提取为子字符串:
awk '$1 == 100 { print substr($0, 9, 11); }' input.csv
这里9是城市列的起始位置,11是它的长度。
如果另一方面你的输入文件不是你粘贴的,但实际上是CSV(逗号分隔值),,如果输入中没有其他嵌入的逗号或换行符,那么你可以像这样写:
awk -F, '$1 == 100 { print $3 }' input.csv