1

私はこの形式のファイルを持っています:

Word1:「Word2」Word3

「Word2」を削除したい

その場合、ファイルは次のようになります。

Word1:Word3

sedでこれを行うにはどうすればよいですか?

注:Word2は変更可能です

4

5 に答える 5

1

input_fileに余分なものがない場合は、引用符で囲まれたすべてのフレーズを空の文字列に置き換えてください。

sed 's/"[^"]*"//' input_file
于 2012-07-18T08:38:12.443 に答える
0

コマンドラインから試してください

$ sed -i 's/\"Word2\"//g' /path/to/file.txt
于 2012-07-18T08:42:48.517 に答える
0

与えられた入力に基づいています。たとえば、Word2は何でもかまいませんが、Word1とWord3は修正されています。sed / awkonelinerは4uの仕事をすることができます:

kent$  echo 'Word1 : "Word2" Word3'|sed -r 's/(Word1 :) "[^"]*"( Word3)/\1\2/g' 
Word1 : Word3


kent$  echo 'Word1 : "Word2" Word3'|awk -F"\"" '{print $1,$3}' 
Word1 :   Word3
于 2012-07-18T08:58:46.123 に答える
0

file.txtがファイルの場合、コマンドラインからこれを試すことができます。

sed -e "s_: \"[a-zA-Z0-9]*\" _: _g" -i file.txt
于 2012-07-18T08:55:01.407 に答える
0

テストがファイルの場合は、次を試してください。

# cat test | sed -r 's/\".+\"\ //'
于 2012-07-18T08:51:29.340 に答える