数字の周りに角かっこを追加し、数字の後に代入演算子を追加する方法

数字の周りに角かっこを追加し、数字の後に代入演算子を追加する方法

約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つ以上の数字に置き換えます。cregionsNN。変換を適用したい場合どの1 つ以上の数字で終わる行には、次の簡単なsedコマンドを使用できます。

sed -r 's/[0-9]+$/[&] <-/' file.regions.txt >file.regions.output.txt

(ありがとうございます。ご指摘いただいたGlenn Jackmanに感謝します。このバージョンのコマンドは&完全一致を表すためにのみ使用できるため、キャプチャグループは必要ありません。 )

もちろん、これらのコマンドのいずれかを使用すると、リダイレクトを省略してファイルに書き込むのではなく、出力を表示できます>file.regions.output.txt

関連情報