我有以下文件

vol-12345678    gp2
vol-89dfg58g
VOLUMES 2016-03-17T22:03:08.374Z  False   100     16      snap-7073d522   in-use  vol-4568gds4    gp2
ATTACHMENTS     2016-03-17T22:03:08.000Z        True    /dev/sda1       i-181ed33c      attached        vol-7ea1c83f


等等

等等

我想提取“ vol-********”的所有实例并将其输出到一个文件中(没有其他内容),从而得到以下文件:

vol-12345678

vol-34556767

vol-34534sdf

...

这是一个相对较小的文件,因此我可以手动进行处理,但是我还有另一个包含200多个案例的文件。知道如何使用GREP或SED或AWK来使用它吗?谢谢!

最佳答案

更新
命令:

sed -n 's/.*\b\(vol-[[:alnum:]]*\).*/\1/'p test2


输出:

vol-12345678
vol-89dfg58g
vol-4568gds4
vol-7ea1c83f


标志:
n:禁止自动打印图案空间。
p:打印出图案空间

图案:


寻找“ vol- [字母数字] s”
替换它并用\ 1打印第一个匹配项


更多详细信息Sed

关于linux - 如何从文件中提取特定字符串(Linux),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38792639/

10-10 17:54