Як вказати вираз sed для видалення недрукувальних восьмеричних символів з текстового файлу


1

Я новачок у сім і прибираю дуже великий файл. Очищений документ виглядає правильно, але коли я читаю його в R, він показує, що кожен рядок додається \016\tв кінці кожного рядка. Я зрозумів, що \tце вкладка і що \016це octl (?), Але я не зовсім зрозумів, як вкласти це в правильний вираз.

Будемо дуже вдячні за будь-яку допомогу новому користувачеві sed (та вирази reg!).


1
На жаль, ми не є сервісом написання коду. Замість того, щоб просто просити код для виконання певного завдання, покажіть нам, що ви намагалися до цього часу (включаючи будь-який код, який у вас є зараз) і де ви застрягли, щоб ми могли допомогти вам у вирішенні вашої конкретної проблеми. Питання, які запитують лише код, занадто широкі і, ймовірно, можуть бути затримані або закриті .
bwDraco

2
Це не широке запитання, це про одну конкретну річ.
Кевін Панько

Відповіді:


1

Наступні роботи з bash:

sed $'s/\016\t$//' infile >outfile

Режекс \016\t$відповідає восьмериці 016та вкладці в кінці рядка. Якщо цей рядок знайдений, він замінюється нічим.

Формат рядка $'...'вимагає bash. Я тестував вище за допомогою GNU, sedале, як повідомляється, він повинен працювати і з BSD sed.

Інший метод, який працює з GNU sedбез bash, є:

sed 's/\o016\t$//' infile >outfile
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.