我需要使用逗号分隔值从文件中grep行,并将输出定向到另一个文件。因此,如果第二个值以“U”开头而最后一个值为“Success”,则该行与该模式匹配。
应匹配模式:
324,U63@DOM1,U63@DOM1,C1755,C1755,Kerberos,Network,LogOn,Success
应该不匹配:
456,C1164$@DOM1,C1164$@DOM1,C625,C625,?,Network,LogOff,Success
123,U63@DOM1,C11847$@?,C2109,C2109,?,?,TGT,Fail
谢谢!
答案 0 :(得分:1)
grep '^[^,]*,U.*,Success$'
查找第一个逗号,U
,最后一个逗号,Success
和行尾。
答案 1 :(得分:1)
随着柱状匹配要求变得更加复杂,awk
解决方案变得更具吸引力:
awk -F, '$2 ~ /^U/ && $(NF) == "Success"'
(匹配的默认操作是打印该行。)
以下是使用grep
的解决方案:
grep '^[^,]*,U.*,Success$'
sed
:
sed '/^[^,]*,U.*,Success$/ p; d'