GNU/Linux >> Linux の 問題 >  >> Linux

sed - sed を使用して正規表現グループを作成する方法

Birei と Thor の意味は次のとおりです。

sed -r "s/([a-z]*-[a-z]*-)([0-9]*-)([a-z]*-)(.*)/\1\n\2\n\3\n\4/"

出力:

test-artifact-
201251-
balbal-
0.1-SNAPSHOT.jar

式をグループ化するには、括弧をエスケープする必要があります:

\([a-z]*-[a-z]*-\)\([0-9]*-\)\([a-z]*-\)\([.]*SNAPSHOT.jar\)

そしてそれらを \1 で使用します 、 \2 など

編集 :SNAPSHOT の直前にも注意 その [.] 一致しません。括弧内 . 文字通りです。 [0-9.-]* である必要があります


実際、これらの通常の文字列の場合、awk を使用するとグループ化を回避できます。 :)

必要なパーツのインデックス番号を指定するだけです:

awk 'BEGIN{FS=OFS="-"}{print $1,$2,$5,$6}' 

出力:

kent$  echo "test-artifact-201251-balbal-0.1-SNAPSHOT.jar"|awk 'BEGIN{FS="-";OFS="-"}{print $1,$2,$5,$6}'
test-artifact-0.1-SNAPSHOT.jar

Linux
  1. 正規表現を使用して多くのファイルの名前を変更するにはどうすればよいですか?

  2. 別のサーバーを使用してサーバーにSSH接続する方法は??

  3. グループを追加/一覧表示/削除する方法は?

  1. trace.py を使用して Python スクリプトをトレースする方法

  2. Linuxターミナルから正規表現を使用してフォルダーを削除するにはどうすればよいですか

  3. sed を使用して非 ASCII 文字を削除する方法

  1. sed を使用してファイルの 1 行目にテキストを挿入するにはどうすればよいですか?

  2. ddを使用してFFでファイルをパディングする方法は?

  3. awkを使用してファイルをインプレースで変更するには? (sed -i と同様)