【发布时间】:2011-04-17 00:50:00
【问题描述】:
假设“文本文件”包含以下内容:
lorem$ipsum-is9simply the.dummy text%of-printing
并且您希望将每个单词打印在单独的行上。 然而,单词不仅应该由空格来定义,还应该由所有非字母数字字符来定义。所以结果应该是这样的:
lorem
ipsum
is9simply
the
dummy
text
of
printing
如何使用 Bash shell 完成此操作?
一些笔记:
这不是作业题。
-
单词应该仅由空格确定的更简单的情况很容易。只是写:
for i in `cat textfile`; do echo $i; done;会成功,然后返回:
lorem$ipsum-is9simply the.dummy text%of-printing为了用非字母数字字符分割单词,我见过使用 IFS 环境变量的解决方案(下面的链接),但我想避免使用 IFS 有两个原因:1)它需要(我认为)将 IFS 设置为一长串非字母数字字符。 2) 我觉得有点丑。
这是我找到的两个相关问答
How do I split a string on a delimiter in Bash?
How to split a line into words separated by one or more spaces in bash?
【问题讨论】: