データ抽出のための正規表現/パターン一致の問題

データ抽出のための正規表現/パターン一致の問題

次の行から距離を削除してcdv形式で出力する最良の方法は何ですか?コマンドラインでこれをかなり簡単に実行できますか?完全なスクリプトを書くのを避けたい。

Greece 282 km, Macedonia 151 km, Montenegro 172 km, Kosovo 112 km
Central African Republic 797 km, Chad 1,094 km, Republic of the Congo 523

出力は次のとおりです。

Greece,Macedonia,Montenegro,Kosovo
Central African Republic,Chad,Republic of the Congo

ベストアンサー1

cdv形式が何であるかはわかりませんが、数値とオプションの測定単位を削除してから、残りのコンマの後のスペースを圧縮するだけです。

sed 's/ *[0-9]\+\(,[0-9]\+\)\?\( *km *\)\?//g;s/, \+/,/g' file.txt

読みやすくするには、拡張正規表現と同じです(GNUの場合sed)。

sed -r 's/ *[0-9]+(,[0-9]+)?( *km *)?//g;s/, +/,/g' file.txt

おすすめ記事