我有一个文本文件,有一些我需要删除的垃圾。有些行包含2个字符,还有一个空格,然后是其他垃圾字。我需要编辑文件并自己留下这两个单词。例如
aa hello how are you
hey how are you doing
za this is cool
bb
hey be
将转换为
aa
za
bb
如何使用sed执行此操作?它们只包含小写字母。谢谢!
答案 0 :(得分:2)
通过sed。
sed 's/^\([^ ][^ ]\)[[:blank:]].*/\1/' file
通过grep。
grep -oP '^\S{2}(?=\s)' file
答案 1 :(得分:1)
您可以使用awk执行此操作:
awk 'length($1)==2{print $1}' file
它检查第一个字段的长度是否为2,如果是,则打印它。它并不严格遵守您对“两个字符后跟空格”的要求,但它会产生所需的输出:
aa
bA
bb
答案 2 :(得分:0)
使用grep:
grep -Eo "^..(\s|$)" filename
答案 3 :(得分:0)
这是另一个sed
选项:
sed '/^.. /!d;s/^\(..\).*/\1/' file