Я хочу удалить странные / специальные символы из набора текстовых файлов. Здесь я использовал следующую команду, чтобы удалить странные символы, но она дает мне ошибку.

Команда:

1) grep -lri -e à ¢ â¬Å temp.txt | xargs sed -i 's_à ¢ â¬Å _ "_ g"

2) grep -lri -e à ¢ â¬Å temp.txt | xargs sed -i 's / à ¢ â¬Å / "/ g'

3) grep -lri -e à ¢ â¬Å temp.txt | xargs perl -piew 's_à ¢ â¬Å _ "_ g'

4) grep -lri -e à ¢ â¬Å temp.txt | xargs perl -piew 's / à ¢ â¬Å / "/ g'

Здесь я хочу заменить этот символ на «цитата».

Вот некоторые странные символы, которые я хочу удалить из текстовых файлов:

-,,; ! , ¡,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,%, €, €, `, Â, Â, Â, Â, Â, Â, Â, Â, Â, Â, Â, Â, Â,  †, ,,,,,,,,,,,,,,,,,,, M, M, M, M, M, Z, M, à «, ¬, Â, Ã, Ã, Ã, î, ï, ó, ò, ô, ¶, µ, ¸¸,“ “,“ и так далее.

Пожалуйста, помогите мне в этом и также предложите команду, чтобы удалить кучу странных символов.

1 ответ1

1

Команда perl может легко работать с набором файлов. Там нет необходимости grep файлов искать их для определенной строки, а затем передать эти имена файлов через трубу в xargs , а затем в perl Это определенно сломается даже в простом случае, когда любой из файлов содержит пробелы в своем имени.

Почему бы не сделать следующее, например, чтобы удалить недопустимые символы?

perl -pi -e 's/[—Ç…]//g' *.txt

Или, чтобы удалить не-ASCII символы:

perl -pi -e 's/[^[:ascii:]]//g' *.txt

Или, чтобы заменить определенный символ другим:

perl -pi -e 's/ú/u/g' *.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .