2

ZDT 形式の語彙リストを操作しようとしていますTraditional Characters \t Simplified Characters \t Pinyin \t English \n。行の先頭にある繁体字を削除したいので、それらを削除しようとしましたsed 's/^[^\t]*\t//g' input.txt > output.txtが、一部の行では英語のセクションのどこかまですべてが削除され、他の行では目的の結果に近づきません。行はまったく削除されず、パターンを理解できません。

ここでテストしたところ、Sublime Text 2 も期待どおりに動作するので、RegEx は正しいと思います。ここで何が問題なのですか?

編集: http://pastebin.com/fRemVPyT
の 始まりinput.txt http://pastebin.com/EJkszFNF
の 始まりoutput.txt

4

1 に答える 1

2

すべてのsedバージョンが好きというわけではありません\t。リテラルのタブ文字を使用してみてください。bash次のようなタブを含む変数を作成できます。

export TAB=$'\t'

多分このように:

sed "s/^[^$TAB]*$TAB//g" input.txt > output.txt
于 2013-10-20T12:41:10.620 に答える