1

角括弧内の数字の可変長リストの多くのインスタンスを含む大きなファイルがあります。1 行に最大 1 つのリストがあり、リストが空になることはありません。例:

[1、45、54、78] または [32]

角括弧とコンマを取り除きたい、例えば:

1 45 54 78 または 32

sed のこの正規表現でそれらを正常に一致させることができます。

\\[\\([0-9]*\\)\\(, \\([0-9]*\\)\\)*\\]

しかし、グループ番号を使用して必要なグループを参照する方法がわかりません。たとえば、次のようにします。

sed  's/\\t\[\\([0-9]*\\)\\(, \\([0-9]*\\)\\)*\\]/\\t\\1 \\3/g'

宛先ファイルがリストの最初と最後の番号を取得するだけです。

(awkを使用して問題を解決しましたが、sedを使用して実行できるかどうか疑問に思っています)

sed で可変数のグループを参照する方法はありますか?

4

3 に答える 3

1

これawkは次のことを行う必要があります。

awk '{gsub(/[][,]/,x)}1' file
1 45 54 78 or 32
于 2013-12-30T20:07:23.283 に答える