我对正则表达式相当陌生,正在寻找 sed/awk/grep/wc 命令来在管道分隔的文本文件中查找第 12 个管道之后数字 1 出现的次数。
以下是文本文件的示例:
2|JOHN||HAY||2955|ROSE|ST|#39D|Tool|TX|769065589|2542444320|||2222299310|SSD||01/08/2014^M
8|ALEN|BOBRISE|FITZGERALD||5432|Red|Ave|Apt 253|Bloomington|MN|559322972||9582544754|||MINNESOTA JIL|MN|01/08/2014^M
我更喜欢 sed 或 wc,因为这是我最熟悉的,但我会采取我能得到的。
答案1
我会用cut
cat myfile.txt | cut -d '|' -f 12 | grep -c 1
答案2
和awk
:
awk -F'|' '$13 ~ /^1/{count++} END{print count}'
答案3
Singlegrep
与-P
erl 兼容选项:
grep -Pc '^([^\|]*\|){12}\K1' file