我有一个问题是从egrep削减输出.我的输出如下:
From: First Last
From: First Last
From: First Last
Run Code Online (Sandbox Code Playgroud)
我想删掉"From:"(基本上是留下"First Last").
我试过了
cut -d ":" -f 7
Run Code Online (Sandbox Code Playgroud)
但输出只是一堆空行.
我将不胜感激任何帮助.
这是我试图使用的完整代码,如果它有帮助:
egrep '^From:' $file | cut -d ":" -f 7
Run Code Online (Sandbox Code Playgroud)
注意:我已经测试了代码的egrep部分,它按预期工作.
Aar*_*ler 11
cut您的问题中的命令行指定冒号分隔的字段,并且您希望输出仅包含字段7; 由于您的输入中没有第7个字段,因此您得到的结果不是您想要的.
由于"From:"前缀在所有行中看起来都是相同的,因此您可以简单地从第7个字符开始:
egrep '^From:' $file | cut -c7-
Run Code Online (Sandbox Code Playgroud)
并得到你想要的结果.
小智 11
你们真的很亲密。
我认为你只需要将“:”替换为“”作为分隔符,并在“7”后面添加“-”:如下所示:
cut -d " " -f 2-
Run Code Online (Sandbox Code Playgroud)
我测试过并且工作得很好。
您可以将egrep和cut部分组合成一个命令sed:
sed -n 's/^From: //gp' $file
Run Code Online (Sandbox Code Playgroud)
sed -n默认情况下关闭打印,然后我p在sed命令中明确使用打印我想要的行.
| 归档时间: |
|
| 查看次数: |
24867 次 |
| 最近记录: |