私のスクリプトでは、3つの数字の後に「、」を追加するコードスニペットを見つけました。このコードは数値データのみを考慮します。
以下はコードです。
sed 's/\(^\|[^0-9.]\)\([0-9]\+\)\([0-9]\{3\}\)/\1\2,\3/g' number.txt
番号.txt
1234
12345
123456
出力
1,234
12,345
123,456
1234,567
コードフローを誰が説明できますか?
ベストアンサー1
sed(Sトレメ編集するitor) は以下で実行できます.S検索と置換モードの使用一般的な表現。 sed 関連のエスケープはいくつかありますが、正規表現自体の場合は、以下で通訳ツールを付与できます。正規表現:
(
グループ#1をキャプチャします。複数のトークンをまとめてグループ化し、キャプチャグループを作成して部分文字列を抽出するか、逆参照を使用します。
^
スタート。文字列の先頭に一致します。
|
交互に。これはブールORのように機能します。前後の式と一致します|
。
[^
セットを否定します。セットにないすべての文字と一致します。
0-9
範囲。「0」から「9」の範囲の文字と一致します。大文字と小文字を区別します。
.
特徴。「。」機能と一致します。
]
)
(
グループ#2をキャプチャします。複数のトークンをまとめてグループ化し、キャプチャグループを作成して部分文字列を抽出するか、逆参照を使用します。
[
文字セット。セット内のすべての文字と一致します。
0-9
範囲。「0」から「9」の範囲の文字と一致します。大文字と小文字を区別します。
]
+
数量子。前のトークンの1つ以上と一致します。
)
(
グループ#3をキャプチャします。複数のトークンをまとめてグループ化し、キャプチャグループを作成して部分文字列を抽出するか、逆参照を使用します。
[
文字セット。セット内のすべての文字と一致します。
0-9
範囲。「0」から「9」の範囲の文字と一致します。大文字と小文字を区別します。
]
{3}
数量子。前に示したマッチ 3.
)