2017-10-15 11 views
0

私は使用しようとしていますsed - パターンと-iオプションを無視する

"#"で始まる行は無視されません。私は "#"で始まる行を無視し、 "|"でファイルを恒久的に変更したいのですが、デリミタ。 どのように私はこれを修正するか、これを1つのコマンドで行うことができますか?

答えて

3

あなたは二sedにfilename引数を渡しているので、それがパイプを通って入ってくるの入力を無視します。二重引用符で、この場合の"$myfile"をあなたの変数を囲むことは常に良いです、余談として

sed -i "/^#/d;/$id/{s/[^|]*/$value/$column}" "$myfile" 

:あなたは;sed内の式で両方のステートメントを組み合わせることができます。

+2

あなたはまた、複数の '-E 'のsedコマンドに' -e「他-command''オプションを使用するか、または' script.sed'は 'sed'コマンドを含むファイルである' -f script.sed'を使用することができます実行される。 –

+0

@JonathanLeffler私は "#"で始まる行を削除したくないだけで、それらをスキップします。 –

+0

@BeginnerProg: '/ ^#/ d'を'/^#/ n'に置き換えてください。元のコードで削除されました。それは答えでそれらを削除することは不合理ではなかった。 –

関連する問題