ファイルの上部に2行のコメントを追加します。 [重複]

ファイルの上部に2行のコメントを追加します。 [重複]

変更して新しいファイルを出力するsedスクリプトを作成しようとしていますが、出力ファイル自体がbashスクリプトとして実行できるように、上部に2つのコメント行を追加する必要があります。問題は、2つの一番上の行を追加するために見たすべてのソリューションがコメントで機能しないため、スクリプト自体が実行されないことです。

たとえば、私のsedの結果が次のようなファイルの場合:

AAAA
BBBB
CCCC
DDDD

私は次のように終わりたいと思います。

#$ -cwd
#$ -pe mpi 16

AAAA
BBBB
CCCC
DDDD

私は次のようなバリエーションを試しました。

sed -i '1s/^/#$ -cwd\n/' output.txt

しかし、これらは#の後のすべてをコメントとして扱います。

混乱せずにコメントのタイトルを追加するためにbashスクリプトをどのように書くことができますか?ありがとうございます!

ベストアンサー1

Kusalanandaの答えはいつもうまくいくので、おそらく最高の解決策でしょう。しかし、sedだけを使用するとソリューションも機能することも確認しました。

$ cat output.txt 
AAAA
BBBB
CCCC
DDDD
$ sed '1i#$ -cwd\n#$ -pe mpi 16\n' output.txt 
#$ -cwd
#$ -pe mpi 16

AAAA
BBBB
CCCC
DDDD

デフォルトでは、(s)置換の代わりにsedの(i)nsertコマンドを使用します。
1- ライン1で動作 -
iライン1の前に挿入
1i- ライン1の前に挿入

これはgnu sed 4.8で動作します。青少年MMV

おすすめ記事