我有一个情况,多个.bz2文件位于子目录中。 我想用bzcat和grep命令来查找所有文件中的文本。
bzcat <filename.bz2> | grep -ia 'text string' | less
但是现在我需要为子目录中的所有文件执行上述操作。
缺lesspython bz2模块
安装PHP的bzip2
如何将数据传输到bzip2并从Linux中的C ++ stdout中获取结果数据?
使用从源代码构build的bzip2提升iostream
如何使用awk来压缩文件
你可以使用bzgrep而不是bzcat和grep 。 这个更快
要在目录树中递归地grep使用find :
find -type f -name '*.bz2' -execdir bzgrep "pattern" {} ;
find将以递归方式搜索带有*.bz2扩展名的所有文件,并将使用-execdir指定的命令应用于它们。
有几种方法:
bzgrep regexp $(find -name *.bz2)
如果找到的文件数量不是很大(这些文件中没有特殊字符),这个方法就可以工作。 否则,你最好使用这个:
find -name *.bz2 -exec bzgrep regexp {} /dev/null ;
请注意第二种方法中的/dev/null 。 你用它来使bzgrep打印找到正则regexp的文件名。
用bzcat修复你的代码:
find . -type f -name "*.bz2" |while read file do bzcat $file | grep -ia 'text string' | less done
只要尝试使用:
bzgrep --help grep through bzip2 files
用法: bzgrep [grep_options] pattern [files]
例如,我需要1941974号文件列表中的grep信息:
'billing_log_1.bz' 'billing_log_2.bz' 'billing_log_3.bz' 'billing_log_4.bz' 'billing_log_5.bz'
我能做什么?
bzgrep '1941974' billing_log_1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。