我正在bash脚本中尝试通过替换空格以及仅将空格字符替换为','逗号来转换一行代码。我不希望标签或换行提要受到影响。
我有起作用的代码:
cat $FILE | tr '\t' '@' | tr '\n' '%' | tr '[:space:]' ',' | tr '@' '\t' | tr '%' '\n' > $NEWFILE
但是显然这并不优雅。我知道必须有一种方法可以只识别空格字符,而不必使用换行符或制表符。这样,我就不必将那些字符转换为其他字符,然后再返回。
有什么想法吗?
答案 0 :(得分:0)
如果只想转换常规空格字符,请不要使用[[:space:]]
(明确存在是为了转换制表符和换行符以及常规空格);只需使用。
tr ' ' ',' <"$FILE" >"$NEWFILE"