我有多行数据文件。我可以使用grep命令找到这些行。我需要从上面的grep命令的输出中获取字符串的一部分。而且,还需要在那里找到任何重复。
感谢。
答案 0 :(得分:0)
您可能希望使用grep
和cut
的组合,如:
grep PATTERN FILENAME | cut -b x-z
其中grep
在PATTERN
中搜索FILENAME
,cut
显示从x
到z
的输出(这些应该是数字) )。
或者你可以使用一个命令:
awk '/PATTERN/ { print substr($0,FROM,LENGTH) }' FILENAME
在此版本中,您需要将FROM
替换为所需输出开始的字节,并将LENGTH
替换为......您可能会猜到它。
答案 1 :(得分:0)
有许多用于字符串搜索和操作的Unix工具,grep
,sed
,awk
的链,最多perl
提供(主要是兼容的)进展能力。所以,你可以从grep
开始,当这不适合你时,"升级"至sed
,依此类推。 (最强大的那个并没有完全驱逐弱者的原因就像你没有使用大型电钻只是将一个小钉子放入干墙一样。)
问题的最佳解决方案取决于字符串细节的某些部分。如果这是由某个角色或固定位置分隔的,cut
可以做到这一点。要删除不需要的模式匹配,sed
就是一个。使用后者,您可以grep
并在一次调用中删除,但通过管道组合它们更简单(效率更低):
$ grep PATTERN file | sed 's/unwanted stuff//'