在unix中计算单词并从文本文件中删除字符串



我有个问题要问你:我有一个很大的日志文件,我想清理它。我只对包含确定词的字符串感兴趣,我想删除其他字符串。即:

access ok from place1
access ko from place1
access ok from place2
access ko from place2
access ok from place3
access ko from place3
......

我只想获得"place2"条目:

access ok from place2
access ko from place2

我该怎么做?提前感谢!

grep"place2"/path/to/log/file>cleanedFile.txt

我写了一篇关于结合find/sed/grep的博客文章——你可能会感兴趣。

尝试这个grep命令:

grep "<place2>" log-file > out-file

CCD_ 1和CCD_。

grep "<place2>" file.log > file.out
wc file.out 

wc(单词计数(用于计数单词。但对于两个问题,您通常应该打开两个问题。:(

另取一行,选择第4列等于"place2"的行

awk '$4 == "place2"' file

与大多数其他答案不同,这会修改文件,不需要进一步重命名。

sed -i -n '/place2/p' /var/log/file

这是假定GNU sed。如果您没有GNU sed,但有perl:

perl -i -ne '/place2/ && print' /var/log/file

这两个例子也可以进行就地编辑。

$ awk '$NF=="place2"{print $0>FILENAME}' file
$ ruby -i.bak -ane 'print if $F[-1]=="place2"' file

还有其他方法来归档这些行

sed -i.bak -n '/place2$/p' file
grep 'place2$' file > temp && mv temp file

纯粹使用外壳

while read -r line; do case $line in  *place2) echo "$line";; esac; done < file > temp && mv temp file

相关内容

  • 没有找到相关文章

最新更新