2014-12-11 3 views
0

Я пытаюсь использовать команду патча в очистить текстовый файл:удалить все странные символы из текстового файла

sed -i.bak -e '[email protected]^[A-Za-z0-9_.;,:][email protected]@g' *.txt 

возвращает

sed: RE error: illegal byte sequence 

Что я делаю неправильно с регулярным ехром? Обычно я говорю "заменить все, что не A-Za-z0-9 _;,:." С ""

+0

Вы можете использовать некоторые имена классов POSIX символов для ясности (?): 'СЕПГ -i.bak -e«s/[^ [цифра, буква] [: punct:] [: blank:]] // g '* .txt' - вы знаете, что вы также удаляете пробелы и вкладки? –

+1

Возможный дубликат [RE error: незаконная последовательность байтов в Mac OS X] (http://stackoverflow.com/questions/19242275/re-error-illegal-byte-sequence-on-mac-os-x) –

+0

О, да, как я могу хранить пробелы? – Michele

ответ

1

Ставишь ^ @ плохое место, положил его туда:

sed -i.bak -e '[email protected][^A-Za-z0-9_\.;,:]\[email protected]@g' *.txt 

И не маленькие изменения (backslashing некоторые специальные символы)

+0

Какая ОС вы работаете? –

+0

Я использую Mac OS – Michele

+0

Использует -E вместо -e помогает? –

0

Пусть говорят у вас есть что-то вроде этого в файле с именем «my_file»

Location: http://www.google.gy/?gws_rd=cr&ei=l_KIVOXnIsinNq2NgsgB [following] 
--2014-12-10 21:25:44-- http://www.google.gy/?gws_rd=cr&ei=l_KIVOXnIsinNq2NgsgB 
Resolving www.google.gy (www.google.gy)... 64.233.176.94, 2607:f8b0:4002:c05::5e 
Connecting to www.google.gy (www.google.gy)|64.233.176.94|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: unspecified [text/html] 
Saving to: `index.html.2' 

вы можете попробовать

sed -i.bak -e 's#[^[:alnum:].;,:]##g' 'my_file' 

Это символы, которые не являются алфавитно-цифровыми или «.» Или «;» или «,» или «:» и печатаются. Результаты

Location:http:www.google.gygwsrdcreilKIVOXnIsinNq2NgsgBfollowing 
2014121021:25:44http:www.google.gygwsrdcreilKIVOXnIsinNq2NgsgB 
Resolvingwww.google.gywww.google.gy...64.233.176.94,2607:f8b0:4002:c05::5e 
Connectingtowww.google.gywww.google.gy64.233.176.94:80...connected. 
HTTPrequestsent,awaitingresponse...200OK 
Length:unspecifiedtexthtml 
Savingto:index.html.2 
0

Гленн Джекман был прав, найденное решение в другой пост помог ...

единственной проблемой является команда теперь только знает английский латинские символы так не будет работать ...

Вот результат, ничего не изменилось:

ÁÉc†ÿ°“Å9,0,sub,,0,0,0,,Pero, aun no comprendo porque quer√≠a acabar conÄC∂u⁄ÁÉx¨†ú°ñÅ996,0,sub,,0,0,0,,õÇ–†µ°ØÅ*10,0,sub,,0,0,0,,Ha deshonrado aléC∂u⁄ÁÉ©≤†”°ÕÅ11,0,sub,,0,0,0,,{\pos(1481.142,795.974)\bord0\fad(800,0)}Himalayan RangeõÇ!¸C∂[email protected]óÁÉf†”°ÕÅ12,0,sub,,0,0,0,,¬øEsta seguro que querer hacerlo solo?, se√±or MitsumazaõÇ»†ª°µÅî13,0,sub,,0,0,0,,Silencio Tatsumi, tranquil√≠zateõÇ2C∂[email protected]ôÁÉ,†©°£Å14,0,sub,,0,0,0,,Pero se√±or...õÇ\†≠°ßÅ\15,0,sub,,0,0,0,,Aunque lo digas...õÇ<†∏°≤Åò16,0,sub,,0,0,0,,Tengo un esp√≠ritu aventureroõÇ|C∂[email protected]£ÁÉ@†∞°™Å17,0,sub,,0,0,0,,Lo entiendo se√±or...õÇ–†≤°¨Å–18,0,sub,,0 
Смежные вопросы