test.txt
次の内容を含むテキストファイルがあります。
foo
configure
top
start
fun
bar
hello
出力が次のように2行、5行、7行をコメントアウトしたいと思います。
foo
#configure
top
start
#fun
bar
#hello
2、3、4、5、6、7行を使用するとsed -i "2,7 {s/^/#/}" test.txt
コメントが表示されます。特定の行番号だけをコメントアウトする方法は?助けてくれてありがとう。
答え1
2,7
あなたが指定するように範囲式が適用される行数。この場合、特定の3行だけを選択してください。
sed -e '2s/^/#/' -e '5s/^/#/' -e '7s/^/#/' file
または、実際のコメント操作をsed
編集コードの特定の場所に分割します(#
行の先頭にaを追加するよりも複雑な操作を実行する必要がある場合にのみ非常に便利です)。
sed -e 2bc -e 5bc -e 7bc -e b -e :c -e 's/^/#/' file
コマンドb
はラベル(ここではc
定義を含む:c
)に分岐するか、ラベルが指定されていない場合はスクリプトの末尾に分岐します。
または次のようにawk
:
awk 'NR == 2 || NR == 5 || NR == 7 { print "#" $0; next } 1' file