一致するパターンを編集して置き換えるより強力な方法はありますか?

一致するパターンを編集して置き換えるより強力な方法はありますか?

一致するパターンを編集してから、他のパターンを編集したパターンに置き換える方法はありますか?

入力する:

a11.t
some text here
a06.t
some text here

出力:

a11.t 11
some text here
a06.t 06
some text here

上記の例では、抽出された最初の2つの数字(最初のパターンと一致)を示し、行の末尾に配置します(2番目のパターン)。

プログラミング言語では、ファイルをデータ構造にロード、編集、置換、および新しいファイルを作成しました。しかし、それに対応する1行のコードはありますか?

裁判:

sed 's/\(a[0-9][0-9].*\)/& \1/I' stack.fa | sed -e 's#a##g2' -e 's#\.\w##g2'

テスト出力:

a11.t 11
some text here
a06.t 06
some text here

明らかに実験は効果がありますが、より強力なアプローチはありますか?また、これをより簡単に実行できる別のテキスト処理言語がありますか?

ベストアンサー1

年齢にもかかわらず、テキスト処理の面でPerlと競合する言語はほとんどありません。たとえば、

  1. 行の末尾にコピーされた数値セットのみがあるとします。

     $ perl -pe 's/.*?a(\d+).*/$& $1/' file
     a11.t 11
     some text here
     a06.t 06
     some text here
    
  2. 複数の数値セット、最後に2つを追加します。

     $ cat file
     a11.t
     some text here
     a06.t
     some text here
     a11.t a54.g
    
     $ perl -pe '@nums=(/a(\d+)/g); s/$/ @nums/' file
     a11.t 11
     some text here 
     a06.t 06
     some text here 
     a11.t a54.g 11 54
    

おすすめ記事