ファイルの行末に文字列を追加するには:3文字の前に追加できます。
試してみましたが、最終的に文字列の末尾に追加されました。誰でも私を助けることができますか?
例: I/P:
file1.txt
コンテンツ:
a
bbbb
vvvvv
cccccc
dd
rules('example here i dont need to get added')
rules('test', [abc,bcd]).
使ってみよう
sed -i '/rules/ s/$/ ***/' file1.txt
出力:
rules('test',[abc,bcd]). ***
ただし、好ましい o/p:
rules('test',[abc,bcd,***]).
ルールに一致する2つの行がありますが、2番目の行に表示されるようにする必要があります。これを試しました。
sed '/rules/ s/\(...\)$/ ,***\1/'
しかし、うまくいきません
答え1
これは働きます:
sed -E '/rules/ s/(]\)\.)$/,***\1/' file1.txt
入力する:
a
bbbb
vvvvv
cccccc
dd
rules('example here i dont need to get added')
rules('test', [abc,bcd]).
出力:
a
bbbb
vvvvv
cccccc
dd
rules('example here i dont need to get added')
rules('test', [abc,bcd,***]).
これにより、stdoutから出力を取得できます。ファイルを変更するには、-i
次のオプションを追加してください。
sed -i -E '/rules/ s/(]\)\.)$/,***\1/' file1.txt
答え2
努力する
'/rules/ s/\(\]..\)$/,***\1/'
代替パターンとして。
どこ
\(
...\)
「grep」のパターン\1
\]..
パターンは、閉じ括弧(エスケープする必要があるかどうかわからない)とランダムな2文字です。,***\1
前にアスタリスクとコンマを付けます。