数字とコンマで構成されるパターンがあります。123,45,2,14324
です。任意の桁数がありますが、2桁の間に桁数が何桁かあるかどうかわかりません。私は各桁を文字 'k'で置き換える必要があるので、129,54,0,111
はkkk,kk,k,kkk
になります。その例のラインに変更する必要があり、私は直接mypattern:
を次の各桁を置き換える必要があり mypattern:123,421,9,3 pattern_i_don't_need:1499,242,22,1
sedは、パターンが出現するまで各文字を置換します。
:私は、特定のパターンが、その前に発生した場合にのみ、それを交換する必要があり、それは常にこのような行に表示されます:
mypattern:kkk,kkk,k,k pattern_i_don't_need:1499,242,22,1
私はSEDおよび/またはgrepを使用することができます。 は、これまでのところ私はこのように、問題の行に各文字を置換する方法を学びました:
sed '/^mypattern:/ s/[0-9]/k/g'
このバージョンはmypattern:
で始まり、その行の各桁を置き換える行を検索します。どのようにしてsedに '停止'と言えばいいですか?
'mypattern:kkk、kkk、k、k pattern_i_don't_need:1499,242,22,1'は常に同じ行にありますか?それとも別の行に入れることができますか? – Inian
はい、常に同じ行にあります。先行する文字がない場合は常に最初に 'mypattern 'です。次に、' k 'で置き換えなければならない数字とスペースと文字の量が固定されています(各行で異なる可能性があります)。カンマで数字を変更する必要はありません。それは単一行です。 – wouldnotliketo