Используя sed для удаления всех строк, содержащих специальные символы, числа и пробелы

Таким образом, я довольно плохо знаком с использованием оболочки - удара конкретно - и я нахожусь в процессе записи сценария, который переведет файлы, содержащие последовательности DNA в более полезный формат. К сожалению, многие из этих файлов будут содержать посторонние строки, используемые для маркировки информации и т.д. Мне нужна команда sed, которая исключит эти строки, содержащие специальный символ, числа или пробелы. Я нашел, что это - справедливо straightforwards удаление строк с пробелами при помощи

sed '/ /d' infile

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

Спасибо

0
задан 30 June 2015 в 17:22

2 ответа

Для удаления любой строки, которая не составлена полностью буквенных символов необходимо было бы добавить, запускаются (^) и конец ($) привязки

sed '/^[[:alpha:]]*$/!d' file

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

sed '/[^[:alpha:]]/d' file

, что каре ^ действует как оператор отрицания здесь, а не как привязка как в предыдущем выражении.

<час>

, С другой стороны, целая строка grep's использования (-x или --line-regexp) опция

grep -x '[[:alpha:]]*' file

(эквивалентный из первого sed выражения) или использование обратного соответствия (-v)

grep -v '[^[:alpha:]]' file

(эквивалентный из второго sed выражения).

2
ответ дан 4 October 2019 в 01:43

Ответ, взятый из комментария

операции в секунду, я думаю, что мне выяснили его, я просто, изменил мой sed для сходства с этим sed '/[[:alpha:]]//!d' infile, который - если логика следует - должен исключить любую строку, содержащую что-либо кроме [A-Za-z]

0
ответ дан 4 October 2019 в 01:43

Другие вопросы по тегам:

Похожие вопросы: