我有一些日志文件,它们有 30000 多行。我需要找到名称“域”并保存在 CSV 文件中,但保存后,CSV 文件中的任何行都已在 CSV 文件的每一行的开头添加了输入文件的路径和文件名。如果不需要将路径和输入文件名添加到 CSV 文件,我该怎么办。
例子:
Input
#cat /home/log/any.log
any things..domain, anything
any things..domain, anything
any things..domain, anything
grep "domain" /home/logs/any.log > newfile.csv
Output:
#cat newfile.csv
/home/logs/any.log:domain
/home/logs/any.log:domain
/home/logs/any.log:domain
#----My requirement output is:
cat newfile.csv
domain
domain
domain
Run Code Online (Sandbox Code Playgroud)
亲切的问候,如果有人知道,请帮助我
Nem*_*emo 21
使用--no-filenamegrep 选项。
禁止输出文件名的前缀。当只有一个文件(或只有标准输入)要搜索时,这是默认设置。
grep --no-filename "domain"
Run Code Online (Sandbox Code Playgroud)
参考:Grep 手册
详细信息请参见man cut,但简短的答案是grep "domain" /home/logs/*.log | cut -d: -f2 >newfile.csv。
或者看看man grep并做grep -o "domain" /home/logs/*.log >newfile.csv
PS:如果命令行上只有一个文件,grep 不会输出文件名,就像grep "domain" /home/logs/any.log您的示例一样。如果你想强制输出文件名,grep "domain" /home/logs/any.log /dev/null就可以了。
| 归档时间: |
|
| 查看次数: |
12651 次 |
| 最近记录: |