如何在Unix脚本的结果中查找字符串

时间:2018-12-25 11:52:15

标签: shell grep

我有一个名为“ sample.sh”的脚本,其中包含文件名列表及其详细信息。文件名是file1.txt,file1.dat,.. etc

sample.sh包含

<Contents>
   <Key>text1.dat</Key>
   <LastModified>date</LastModified>
   <Name>fjhdgfjsd</Name>
</Contents>
<Contents>
   <Key>text2.dat</Key>
   <LastModified>date</LastModified>
   <Name>fd-datastage</Name>
</Contents>

我想找到.dat文件或.txt文件的数量。 我用下面的命令。它按预期工作。

sh sample.sh | grep ".dat"

但是我也得到了-dat和.dat行的结果。输出包含

<Key>text1.dat</Key>
<Key>text2.dat</Key>
<Name>fd-datastage</Name>

但是我想在运行sample.sh时在LastModified上对输出进行排序 请建议任何命令。

2 个答案:

答案 0 :(得分:1)

尝试

grep '\.dat\>' sample.sh | less

如果仅打印您需要的行,那么您的解决方案是

grep -c '\.dat\>' sample.sh

答案 1 :(得分:0)

grep "\.dat\|\.txt" sample.sh |wc -l

这应该为您提供.dat和.txt文件的总数。