如何从我的文件中仅打印字母数字行?

如何从我的文件中仅打印字母数字行?

这是我的文件。从这个文件中我需要使用 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:]]'行 ( )),或者在一个命令中:-vgrep

< 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

相关内容