假设我有一个文件foo.txt,其中包含某些内容:
abcds9912: 8c b2 1e12
asddb221 jj 7u 9i e2e1
现在我只想grep
8c, b2, jj, 7u, 9i
即字符成对出现
到目前为止,我已经尝试过
cat foo.txt | grep -Eo '[a-z0-9]{2}'
但是没有用
答案 0 :(得分:4)
您需要使用单词边界,可以使用:
\b[a-z0-9]{2}\b
您的命令是:
cat foo.txt | grep -Eo '\b[a-z0-9]{2}\b'
答案 1 :(得分:0)
以下内容也可能对您有帮助。
awk --re-interval -v RS=" " -v FS="" '/^[[:alnum:]]{2}$/' Input_file
由于我的awk
版本为OLD,所以我正在使用--re-interval
,如果您正在使用新版本的wk
,则可以将其删除。
答案 2 :(得分:0)
cat foo.txt | grep -E -w -o '\w{2}'
答案 3 :(得分:0)
您可以将单词边界与字符类结合使用来实现
$ cat foo.txt | grep -Eo '\b[[:alnum:]]{2}\b'
或
$ grep -Eo '\b[[:alnum:]]{2}\b' foo.txt