我想用文件中的换行符替换空格。我从其他问题的答案中尝试的其他一些东西在这里没有用:
sed -e 's/\s\+/\n/g' file
sed -e 's/[[:blank:]]\+/\n/g' file
这两者都按原样返回文件。我尝试了以下方法:
sed -e 's/[[:blank:]]/\n/g' file
用n
s替换空格。
我认为差异是由于gnu
sed
与OS X中的差异造成的。我怎样才能在OS X中实现这一点?
答案 0 :(得分:1)
sed
无法识别替换中的\n
,您需要使用文字换行符,并且必须将其转义以防止它结束命令。它也无法理解\s
或+
,因此请使用[[:blank:]]\{1,}
来匹配一个或多个空格。
sed -e 's/[[:blank:]]+/\
/g' file
答案 1 :(得分:1)
诀窍是插入一个新行(实际上是一个新行)。
$ echo 'this will replace blanks with new lines' | sed 's/ /\
/g'
答案 2 :(得分:1)
tr
命令更容易/更适合IMO:
tr ' ' '\n' < $FILE_PATH
或:
echo 'this will replace blanks with new lines' | tr ' ' '\n'