2016-07-14 103 views
-1

sed命令我去到終端,我把這個命令:錯誤在終端

sed 's/X(Y)Z/A/g' filename.csv > newfile.csv 

試圖用更換X(Y)Z。我認爲Y周圍的括號可能會使事情複雜化。

這是我得到的錯誤:RE錯誤:非法字節序列。

請讓我知道我能做些什麼。

+0

你寫的命令對我來說工作得很好。 – John1024

+0

你需要添加關於你正在使用的shell的信息,你正在使用什麼類型的系統等等。你的命令適用於幾個不同的系統。 – Feneric

+0

嘿,我使用bash,並在Mac Pro 2015上。謝謝! – HSB

回答

0

我懷疑問題是您的文件filename.csv包含非ASCII(可能是Unicode)字符,而您的sed期待ASCII。

首先要做的是檢查文件,看看是否是這種情況。我認爲你可以這樣做:

cat -vet filename.csv 

你可能會看到非ASCII的高亮字符。或者,您可以使用iconv嘗試將其轉換爲ASCII,並查看它是否出現錯誤,因爲其中存在非ASCII字符。

如果有非ASCII在那裏字符(比如重音和非英文字符,有的時候表情符號,撇號和引號),您可能需要告訴sed它們的存在,或者如果刪除不高興字符你並不需要它們。

要查看sed的期望值,您需要運行locale並通過單擊其下面的edit將輸出粘貼到原始問題中。然後,您可能需要更改您的區域設置,以使sed像Unicode中所建議的那樣對Unicode更高興。

希望有幫助!