假设我有以下文件:

!@#$@##!#!!@#
!@#--@#%#
12asd
test
12349490
123end
Start12
M1dle
Sup3rASF
Secret
FS123Num
MyStuff
VeryVeryLongWord
WowThisIs123!
!myStuff:)
2014Kces
@88Random
Word Tab
AnyWordhere:P

我想过滤的方式是,所有结尾或开头有数字的单词都不显示。例如,我想要这个输出:
!@#$@##!#!!@#
!@#--@#%#
test
M1dle
Sup3rASF
Secret
FS123Num
MyStuff
VeryVeryLongWord
WowThisIs123!
!myStuff:)
@88Random
Word Tab
AnyWordhere:P

以及如何应用一个类似的过滤器,也删除那些开始或结束后跟随一个特殊字符,如!,?,@等?
例如,生成此输出:
!@#$@##!#!!@#
!@#--@#%#
test
M1dle
Sup3rASF
Secret
FS123Num
MyStuff
VeryVeryLongWord
!myStuff:)
Word Tab
AnyWordhere:P

在最后一个例子中,@88random和wowthisis123!也被移除。但是中间有数字的仍然存在,比如sup3rasf和m1dle。
如果有人能在这两种情况下使用linux工具帮助我使用过滤器,我会很高兴的,但是请记住,它应该是独立于word的,因为我的文件很大,上面的字符串只是示例。
非常感谢。

最佳答案

我想过滤它,不显示所有结尾或开头有数字的单词
如何应用一个类似的过滤器,也删除那些开始或结束后跟随一个特殊字符,如!,?,@等?
您可以使用egrep

egrep -v '^[0-9!?@]|[0-9!?@]$' file

08-03 22:36