1

私はfile.txtにこのデータを持っています:

1234-abca-dgdsf-kds-2;abc dfsfds 2
123-abcdegfs-sdsd;dsfdsf dfd f
12523-cvjbsvndv-dvd-dvdv;dsfdsfpage

「-」から「;」までの文字列を置換したい 「;」だけで、次のようになります。

1234;abc dfsfds 2 
123;dsfdsf dfd f 
12523;dsfdsfpage

私はコマンドで試しました:

sed -e "s/-.*;/;" file.txt

しかし、それは私に次のエラーを与えます:

sed コマンドの文字化け

なぜこうなった?

4

4 に答える 4

1

sedコマンドの最後にスラッシュがありません:

する必要があります"s/-.*;/;/"

于 2013-10-15T18:33:57.143 に答える
1

-.*ここでは*貪欲なので、複数あると失敗します;

echo "12523-cvjbsvndv-dvd-dvdv;dsfdsfpage;test" | sed -e "s/-.*;/;/"
12523;test

への変更-[^;]*

echo "12523-cvjbsvndv-dvd-dvdv;dsfdsfpage;test" | sed -e "s/-[^;]*;/;/"
12523;dsfdsfpage;test
于 2013-10-16T06:05:15.127 に答える
0

これはうまくいくはずです:

sed 's/-.*;/;/g' file > newFile
于 2013-10-15T18:33:49.997 に答える