如何从文件中提取特定字符串(linux)

时间:2016-08-05 15:15:27

标签: linux parsing command-line sed grep

我有以下文件

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 - ********'的所有实例并将其输出到一个文件(没有其他内容),从而得到一个文件:

体积-12345678

体积-34556767

体积-34534sdf

...

这是一个相对较小的文件,所以我可以手动完成,但我有另外200个案例的文件。任何想法如何使用GREP或SED或AWK?谢谢!

2 个答案:

答案 0 :(得分:3)

这应该这样做:

grep -o 'vol-[[:alnum:]]*' input.data | sort -u > output.data

答案 1 :(得分:2)

UPDATE 命令:

string[] strArray = new String[] {"one","two","three"};

输出:

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

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

模式:

  • 寻找'vol- [alphanumeric] s'
  • 替换它并用\ 1
  • 打印第一场比赛

更多详情Sed