5

私の会社のスタイルガイドでは、bashスクリプトは80行を超えることはできないと書かれています。だから私はこの巨大なsedの代用を2倍以上持っています。それがまだ機能するように、どうすればそれをより多くの行に分割できますか?私は持っています

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

そして、私は次のようなものが欲しい

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

まだ同じ効果があります。

4

3 に答える 3

8

可能なクリーンアップ方法

1) sed スクリプトをファイルに入れる

sed -f script [file ...]

2) 正規表現の短縮形を使用する

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'
于 2012-08-07T01:44:46.917 に答える
1

通常はシェル継続文字を使用します\

[~]$ foo \
> and \
> bar

スペースは必要ありません:

[~]$ foo\
> and\
> bar\
> zoo\
> no space\
> whee!\
于 2012-08-07T01:38:34.130 に答える
0

改行の前にバックスラッシュ文字を挿入するだけです:

sed -i s/AAAAA...AAA/\
BBBBB...BBB/g
于 2012-08-07T01:38:48.000 に答える