bash脚本中的换行符

时间:2012-08-07 01:35:44

标签: bash newline

在我的公司风格指南中,它说bash脚本不能超过80行。所以我把这个巨大的sed替换了两倍多。如何将其分成更多行以使其仍然有效?我有

sed -i s/AAAAA...AAA/BBBBB...BBB/g

我想要像

这样的东西
sed -i s/AAAAA...AAA/
BBBBB...BBB/g

仍然有同样的效果。

3 个答案:

答案 0 :(得分:7)

清理的可能方法

1)将您的sed脚本放入文件

sed -f script [file ...]

2)使用Regex简写

sed 's!A\{30,\}!BBBBB...BBBB!g'

3)使用Bash变量帮助分解

regex="AAAA.AAAAAA"
replace="BBBB...BBBBBBB"
sed "s/${regex}/${replace}/g"

什么不该做

1)转义换行符将其分成多行。

您最终会在sed脚本中找到您不想要的换行符。

sed 's/THIS IS WRONG /\
AND WILL BREAK YOUR SCRIPT/g'

答案 1 :(得分:1)

使用shell延续字符,通常为\

[~]$ foo \
> and \
> bar

不需要空间:

[~]$ foo\
> and\
> bar\
> zoo\
> no space\
> whee!\

答案 2 :(得分:0)

只需在换行符前插入反斜杠字符:

sed -i s/AAAAA...AAA/\
BBBBB...BBB/g