行をコピーしてからその行の最初の項目をコメントアウトする方法

行をコピーしてからその行の最初の項目をコメントアウトする方法

行をコピーしてイベントの1つにコメントしたいと思います。これは、コピーされた行(コメントなしの行)を変更する前にコピーを保持するのと似ています。

入力ファイル:

Hi , can you help me here?

結果ファイル:

#Hi , can you help me here?
Hi , can you help me here?

答え1

sedファイルの各行には、次を使用します。

sed 'h;s/^/#/p;g' < input-file > output-file

awk同じ

awk '{print "#" $0 ORS $0}' < input-file > output-file

または以下を使用してpaste

paste -d '#\n' /dev/null input-file input-file > output-file

以下が含まれている場合input-file

foo
bar

結果は次のとおりです。

#foo
foo
#bar
bar

もっと見たいなら

#foo
#bar
foo
bar

これにより、次のことができます。

paste -d'#' /dev/null input-file | cat - input-file > output-file

答え2

すべての行に対して、次の操作を行います。

$ sed -e 'h;G;s/^/#/' file


$ perl -pe '$_ = "#$_$_"' file 

特定の行を制限します。

$ sed -e 'h;s/^\$AB/#&/p;g' file

$ perl -pe 's/^(\$AB.*)/#$1$1/s' file 

関連情報