こんにちは、私はパターン/単語文字列からテキストファイルの1行を選択し、その行を新しいテキストに置き換え、各行の変更に対して数字を増やす方法を理解しようとしています。
sedを使用する予定ですが、各行の変更に対して増加する数値を実装する方法がわかりません。
目標の前後:
前のテキスト:
">text_1_lots of other bits of text"
other lines of text
">text_2_lots of other bits of text"
other lines of text
">text_3_lots of other bits of text"
other lines of text
次のテキスト:
">text_1"
other lines of text
">text_2"
other lines of text
">text_3"
other lines of text
これが私が今まで持っているものです:
sed -i "s/>text_*/>text_[0-n]/g"
[0-n]
そして、ワイルドカードは*
私がやりたいことを示し、これを達成するために考えることができる最も近いものなので、これがうまくいかないことを知っています(たとえこれが本質的に疑似コードであることを知っていますが)。
ベストアンサー1
perl
sed
これは、代替インデックスの直接評価と似ていますが、許可する構文を使用して実行できます。
perl -pe 's/>text_.*/sprintf "text_%d", ++$n/pe' file
また、見ることができます文字列を順次インデックスに置き換える。
しかし、あなたの場合、テキストにはすでに番号が付けられているので、不要な部分をキャプチャして再交換して切り取るのは簡単です。
sed -E 's/(>text_[0-9]+).*/\1/' file