私はこの表現をたくさん使っていますline=${line//[$'\r\n']}
。しかし、これは何を[$'\r\n']
意味しますか?
文字を削除できることはわかっていますが、'\r\n'
どうすればよいですか? 2文字のインスタンスのみを削除しますか、それとも1文字の一致も検索しますか?
この構文の使い方を理解できません。
可能であればマニュアルリンクお願いします。この質問に対する答えが見つかりません。
ベストアンサー1
このコマンドは、変数からすべてのキャリッジリターンと改行バイトを削除しますline
。
${line//XYZ}
これはパラメータ拡張のためのBash(およびzshとksh)拡張です。みんなパターンは何でもXYZ
一致します$line
。
このパターンには[$'\r\n']
2つのコンポーネントがあります。[...]
マッチどの内部文字。$'\r\n'
はいANSI-Cの引用(他の拡張子)、キャリッジリターン(\r
)、および改行(\n
)バイトに拡張されます。これにはキャリッジリターンと改行文字が[$'\r\n']
含まれているため、[...]
両方とも一致します。
これ完全なマニュアルシェルコマンド、演算子、括弧などがすべてここにあります。、POSIX/SUS/IEEE 1003.1 仕様の一部です。これ吹く参考マニュアルはこちら。