2016-06-20 24 views
0

私は数字[0-9]しか必要としないファイルがあります。私はこのコマンドを持っていますsed 's/[^0-9]*//g'は[0-9]ではないものを削除しますが、 "、"の残ったものだけを削除する必要があります数値以外の値を削除する - Unix

私はこれを今でも持っていますが、 ...

sed -ri "s/[^0-9]+\,/,/g" 
+0

は、私が今 '持っていますsed -ri 's/[^ 0-9]。*、/、/' '最初の非数値から何かを削除して、必要なときにこの13513asdf4134,344〜13513,344のように見えるそれは135134134,344のように見える –

+0

''/[^ 0-9]。\(。*、\)/ \ 1/g'''dは期待していましたが、 – Beta

+0

どのようなアイデアを試してみませんか?私はいろいろなことを試みてきましたが、何も動かないようです。 @Beta –

答えて

0

私は上記のコメントで述べたように、's/[^0-9].\(.*,\)/\1/g'が動作しない理由を私は理解していないが、選択肢があります。ホールドスペースを

sed -e:a -e 's/[^0-9].\(.*,\)/\1/;ta' 

をまたは使用(行き過ぎが、それは動作します)::

私たちは、私が何をしgを期待何をするt(テスト)を使用することができます

sed 'h;s/.*,/,/;x;s/,.*//;s/[^0-9].//g;G;s/\n//' 
+0

それは素晴らしいですが、任意の文字の後に1桁を削除します。 '12345abcd6789,123'は' 12345789,123'になり、奇妙な理由で6を失います。 @Beta –

+0

@AdamHorn:これらのコマンドは私のために6を削除しません。あなたは使用しているsedのバージョンを知っていますか?私たちはいくつかの実験をすることができます... – Beta

+0

私はどのバージョンのsedを使用しているのですか? @Beta –

関連する問題