sed 在 OS X 中用换行符替换空格
sed to replace blanks with newlines in OS X
我想用文件中的换行符替换空格。我从这里其他问题的答案中尝试的其他一些事情都没有用:
sed -e 's/\s\+/\n/g' file
sed -e 's/[[:blank:]]\+/\n/g' file
这些都是 return 文件的原样。我尝试了以下方法:
sed -e 's/[[:blank:]]/\n/g' file
用 n
s 替换空格。
我认为差异是由于 gnu
sed
和 OS X 中的差异造成的。我如何在 OS X 中实现这一点?
sed
on OS X 无法识别替换中的 \n
,您需要使用文字换行符,并且必须将其转义以防止其结束命令。它也不理解 \s
或 +
,因此使用 [[:blank:]]\{1,}
来匹配一个或多个空格。
sed -e 's/[[:blank:]]+/\
/g' file
诀窍是插入一个新行(实际上是一个新行)。
$ echo 'this will replace blanks with new lines' | sed 's/ /\
/g'
tr
命令是 easier/more-suitable IMO:
tr ' ' '\n' < $FILE_PATH
或:
echo 'this will replace blanks with new lines' | tr ' ' '\n'
我想用文件中的换行符替换空格。我从这里其他问题的答案中尝试的其他一些事情都没有用:
sed -e 's/\s\+/\n/g' file
sed -e 's/[[:blank:]]\+/\n/g' file
这些都是 return 文件的原样。我尝试了以下方法:
sed -e 's/[[:blank:]]/\n/g' file
用 n
s 替换空格。
我认为差异是由于 gnu
sed
和 OS X 中的差异造成的。我如何在 OS X 中实现这一点?
sed
on OS X 无法识别替换中的 \n
,您需要使用文字换行符,并且必须将其转义以防止其结束命令。它也不理解 \s
或 +
,因此使用 [[:blank:]]\{1,}
来匹配一个或多个空格。
sed -e 's/[[:blank:]]+/\
/g' file
诀窍是插入一个新行(实际上是一个新行)。
$ echo 'this will replace blanks with new lines' | sed 's/ /\
/g'
tr
命令是 easier/more-suitable IMO:
tr ' ' '\n' < $FILE_PATH
或:
echo 'this will replace blanks with new lines' | tr ' ' '\n'