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