假设我有一个csv文件:
31,32,19,James Walker,321,James
21,31,49,Harry Bosh,282,Harry
32,12,03,Chris James,291,Chris
如何使用grep
而不是awk
来搜索" James"在第四场?
答案 0 :(得分:3)
如何做到这一点是通过确保你的正则表达式需要在主模式之前出现三个逗号,并且模式(必须在字段内扫描)本身不匹配逗号,这将导致它匹配到第五个或更晚的领域:
grep -E '^([^,]*,){3}[^,]*James'
“从行的开头匹配三个重复的零或多个非逗号后跟一个逗号。这将我们带到第四个字段。在第四个字段中,匹配零或多个非逗号,然后James
。“
答案 1 :(得分:-1)
你想要什么结果?
cat filename |grep "James"
无法满足您的要求吗?
答案 2 :(得分:-1)
grep -P --color '(?<=,)James(?= +)' file
31,32,19,**James** Walker,321,James
grep -oP '(?<=,)James(?= +)' file
James
答案 3 :(得分:-1)
谢谢你们!我首先完成对cut
文件的操作以提取我想要的字段,然后grep
我想要的字符串。
供参考:
cut -d -f4 name.csv | grep 'James"