文本文件中第 12 个管道后的第一个字符等于 1 的次数?

文本文件中第 12 个管道后的第一个字符等于 1 的次数?

我对正则表达式相当陌生,正在寻找 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-Perl 兼容选项:

grep -Pc '^([^\|]*\|){12}\K1' file

相关内容