変更して新しいファイルを出力する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