在我的公司风格指南中,它说bash脚本不能超过80行。所以我把这个巨大的sed替换了两倍多。如何将其分成更多行以使其仍然有效?我有
sed -i s/AAAAA...AAA/BBBBB...BBB/g
我想要像
这样的东西sed -i s/AAAAA...AAA/
BBBBB...BBB/g
仍然有同样的效果。
答案 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