【问题标题】:Counting words and delete strings from a text file in unix计算单词并从unix中的文本文件中删除字符串
【发布时间】:2011-04-15 15:43:11
【问题描述】:

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

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

我该怎么做? 提前致谢!

【问题讨论】:

    标签: file shell unix string


    【解决方案1】:

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

    我写了一个blog post about combining find/sed/grep - 你可能会感兴趣。

    【讨论】:

      【解决方案2】:

      试试这个 grep 命令:

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

      \&lt;\&gt; 将确保匹配完整的单词,因此不会匹配 inplace2。

      【讨论】:

        【解决方案3】:
        grep "\<place2\>" file.log > file.out
        wc file.out 
        

        wc(字数)用于计算字数。但是对于 2 个问题,您通常应该打开两个问题。 :)

        【讨论】:

          【解决方案4】:

          另一种选择,选择第 4 列等于“place2”的行

          awk '$4 == "place2"' file
          

          【讨论】:

            【解决方案5】:

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

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

            这假设 GNU sed。如果你没有 GNU sed 但有 perl:

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

            【讨论】:

              【解决方案6】:

              这 2 个示例也可以进行就地编辑。

              $ 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
              

              纯粹使用shell

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

              【讨论】:

                猜你喜欢
                • 2013-02-15
                • 1970-01-01
                • 1970-01-01
                • 2014-10-10
                • 2021-03-16
                • 2021-05-22
                • 2014-11-24
                • 2014-12-19
                相关资源
                最近更新 更多