这是我的文件。从这个文件中我需要使用 linux/unix 命令仅打印字母数字行?
1234567890
1234567890
123456789X
0974385495
预期输出:
123456789X
通过以下命令获得输出:
$ tr -cd '[:alnum:]' < distinct_file.txt
12345678901234567890123456789X0974385495
答案1
如果您想要包含至少一位数字和至少一个字母字符的行,则:
< file grep '[[:digit:]]' | grep '[[:alpha:]]'
另外,如果您希望所有字符都是 alnums,您可以将上面的内容通过管道传递到(删除包含至少一个非 alnum 的grep -v '[^[:alnum:]]'
行 ( )),或者在一个命令中:-v
grep
< file grep -xe '[[:alnum:]]*[[:digit:]][[:alnum:]]*[[:alpha:]][[:alnum:]]*' \
-e '[[:alnum:]]*[[:alpha:]][[:alnum:]]*[[:digit:]][[:alnum:]]*'
答案2
使用:对任何字母 ( )grep
进行 OR 运算 ( ) ,随后随时跟上任何数字 ( ),反之亦然:|
[:alpha:]
[:digit:]
grep -E '[[:alpha:]].*[[:digit:]]|[[:digit:]].*[[:alpha:]]'
例子:
% cat file.txt
1234567890
1234567890
123456789X
0974385495
% grep -E '[[:alpha:]].*[[:digit:]]|[[:digit:]].*[[:alpha:]]' file.txt
123456789X
答案3
此过滤器给出至少具有一个 alpha 字符的所有行:
grep '[[:alpha:]]' distinct_file.txt