「テストファイル」というファイルがあります。次の2行しかありません(最初の行には#記号があり、2行目には内容は同じですが、ハッシュはありません)。
#contents of line
contents of line
sedコマンドを使用して2行目の内容を更新/交換したいと思います。私は次の簡単な構文を知っています。
sed -i 's/.*contents of line.*/updated contents/' test-file
ただし、上記のコマンドはこれらの2行を置き換えるため、最初の行を前の#記号で更新したくありません。
ベストアンサー1
次の方法で編集できます。
sed -e '/^#/!s/.*/UPDATED_CONTENTS/' input-file.txt
または
sed -e '/^#/!c\
UPDATED_CONTENTS' input-file.txt
これは次のように理解できます。で始まらない行の場合、行全体を#
指定された内容に変更します。
octothorpeの前に空白がある場合は、/^[[:blank:]]*#/
残りを変更せずに正規表現を調整してください。