Bash:将文本文件拆分为包含非字母数字字符作为分隔符的单词

Sv1*_*Sv1 8 bash scripting parsing

让我们说" textfile "包含以下内容:

lorem$ipsum-is9simply the.dummy text%of-printing
Run Code Online (Sandbox Code Playgroud)

并且您想要在单独的行上打印每个单词.但是,单词不仅应由空格定义,还应由所有非字母数字字符定义.所以结果应该是这样的:

 lorem
 ipsum  
 is9simply  
 the  
 dummy  
 text  
 of  
 printing
Run Code Online (Sandbox Code Playgroud)

如何使用Bash shell完成此操作?



一些说明:

Jon*_*ler 18

使用tr命令:

tr -cs 'a-zA-Z0-9' '\n' <textfile
Run Code Online (Sandbox Code Playgroud)

' -c'用于指定字符的补充; ' -s'挤掉了替补的重复; 这'a-zA-Z0-9'是一组字母数字字符(也可以添加_?); '\n'是替换字符(换行符).您还可以使用区域设置敏感的字符类(并且可能包含比上面列表更多的字符):

tr -cs '[:alnum:]' '\n' <textfile
Run Code Online (Sandbox Code Playgroud)

  • @Sv1:你可能很快就会拥有很高的声誉。我对你的问题投了赞成票,因为你很好地记录了你想要的东西,以及你对此所做的所有研究。 (2认同)