使用tr仅转换空格,不转换制表符或换行符

时间:2018-09-04 15:06:01

标签: unix tr

我正在bash脚本中尝试通过替换空格以及仅将空格字符替换为','逗号来转换一行代码。我不希望标签或换行提要受到影响。
我有起作用的代码:

cat $FILE | tr '\t' '@' | tr '\n' '%' | tr '[:space:]' ',' | tr '@' '\t' | tr '%' '\n' > $NEWFILE

但是显然这并不优雅。我知道必须有一种方法可以只识别空格字符,而不必使用换行符或制表符。这样,我就不必将那些字符转换为其他字符,然后再返回。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果只想转换常规空格字符,请不要使用[[:space:]]明确存在是为了转换制表符和换行符以及常规空格);只需使用

tr ' ' ',' <"$FILE" >"$NEWFILE"