約1000行のファイルがありますが、最初の数行は次のようになります。
head file.regions.txt
cregions1
cregions2
cregions3
cregions4
cregions5
cregions6
cregions7
cregions8
cregions9
cregions10
...
数字の周りに括弧を追加し、数字の後ろのすべての行に「<-」を追加したいと思います!これが私が望む出力です
head file.regions.output.txt
cregions[1] <-
cregions[2] <-
cregions[3] <-
cregions[4] <-
cregions[5] <-
cregions[6] <-
cregions[7] <-
cregions[8] <-
cregions[9] <-
cregions[10] <-
...
答え1
どうですか?
sed -e 's/$/] <-/g' -e 's/cregions/cregions[/g' yourFile
答え2
あなたはそれを使用することができます:
sed -r 's/^(cregions)([0-9]+)$/\1[\2] <-/' file.regions.txt >file.regions.output.txt
前のタブやスペースは追加されません。 (問題の説明ではこれを言及していませんが、出力例にそのような内容があるようです。)
これは行の内容全体を変更し、1つ以上の数字に置き換えます。cregionsN
N
。変換を適用したい場合どの1 つ以上の数字で終わる行には、次の簡単なsed
コマンドを使用できます。
sed -r 's/[0-9]+$/[&] <-/' file.regions.txt >file.regions.output.txt
(ありがとうございます。ご指摘いただいたGlenn Jackmanに感謝します。このバージョンのコマンドは&
完全一致を表すためにのみ使用できるため、キャプチャグループは必要ありません。 )
もちろん、これらのコマンドのいずれかを使用すると、リダイレクトを省略してファイルに書き込むのではなく、出力を表示できます>file.regions.output.txt
。