linux shell 获取文件中包含特殊字符的第一行行数 和最后一行行数

获取包含 2018-01-02”的第一行行号
cat 1.txt | egrep "2018-01-02" -nR | awk -F ":" '{print $1}'| awk '(NR==1){print $0}'

获取包含“2018-01-02”的最后一行行号

cat 1.txt | egrep "2018-01-02" -nR | awk -F ":" '{print $1}'| awk 'END{print $0}'

获取包含“2018-01-02”的第一行和最后一行的行号

cat 1.txt | egrep "2018-01-02" -nR | awk -F ":" '{print $1}'|  awk '(NR==1){print $0} END{print $0}'

如果报错:Binary file (standard input) matches;

意思为文件是二进制文件,不能直接grep

解决办法:

在 egrep后边加-a

cat 1.txt | grep -a "2018-01-02" -nR | awk -F ":" '{print $1}'| awk 'END{print $0}'

你可能感兴趣的:(shell)