カンマで区切られた3つの長い数字の行があります。真ん中の数字を削除し、最初の数字と最後の数字だけをコンマで区切っておくのがやりたいです。
現在:
123456789123,723456789123456,834567885544334
123456789125,723456789123457,834567885544333
123456789126,723456789123458,834567885544337
望ましい結果:
123456789123,834567885544334
123456789125,834567885544333
123456789126,834567885544337
これを試してみましたが、次の正規表現では機能しませんでした。
%[0-9]+,[0-9]+,[0-9]+
^1,^2
私が達成したいことを実際に行う正規表現はどれですか?
注-現在、Windows 7で実行されるUltraeditというアプリケーションを使用しています。問題を解決できる、Windows用のより優れたテキスト編集アプリケーションをお勧めする場合は、お知らせください。
各行の中央の番号を何にも置き換えるだけです。
つまり、エディターで正規表現を検索して置換します
,[0-9]+,
(これは、両側にコンマが付いた数字のみに一致します。入力では中央の数字になります)単一のコンマ:
,
Ultraeditは正規表現の検索と置換をサポートしていると思います。そうでない場合は、私が知っているNotepad ++を試してください。
質問にタグを付けたので Shell-script 、コマンドラインからそれを行う方法は次のとおりです。
sed
を使用します。これは、CygwinまたはGnuWin32の一部としてWindowsでも使用できる標準のLinuxコマンドです。
C:\>sed -e 's/,[0-9]+,/,/g' filename.txt
Jensは、WindowsPowershellでも実行できると指摘しました。 この説明 を参照してください。
正規表現の構文は、アプリケーションごとに異なります。私はUltreditに慣れていないので、一般的な回答をします
正規表現に括弧のキャプチャがありません
([0-9] +)、[0-9] +、([0-9] +)
テキストを置き換えるには、括弧を使用して適切な部分式にタグを付ける必要があります。
UltraEditでは、次の正規表現を検索する必要があります。
%^([0-9]+^),[0-9]+,^([0-9]+^)
Awk相当!
echo "$Variable" | awk 'FS="," { print $1","$3 } '