Как работают эти отдельные методы и в чем разница между ними?
Да, они работают одинаково, хотя sed
и grep
- две разные команды.Ваша команда sed
просто заменяет все те строки, которые имеют #
на NULL.С другой стороны, grep
просто пропустит или проигнорирует те строки, которые пропустят строки, в которых есть #
.
Вы можете получить более подробную информацию об этом на man-странице следующим образом:
man grep
:
-v, --invert-match
Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX.)
man sed
:
s/regexp/replacement/
Attempt to match regexp against the pattern space. If successful, replace that portion matched with replacement. The
Замена может содержать специальный символ & для ссылки на эту часть шаблонапространство, которое соответствует, и специальное экранирование от \ 1 до \ 9 для ссылки на соответствующие совпадающие подвыражения в регулярном выражении.
Было бы также возможно длячеловек, чтобы записать чистые данные в новый файл, избегая при этом любых возможных предупреждений или сообщений об ошибках в этом файле данных?
да, мы могли бы перенаправить ошибки, используя 2>/dev/null
в обеих командах.
Если да, как бы вы поступили так?
Вы можете попробовать как 2>/dev/null 1>output_file
Объяснение команды sed
: Добавление объяснения команды sed
тоже сейчас.Это только для целей понимания и не нужно использовать cat
, а затем использовать sed
, вместо этого вы можете использовать sed -e "s/\#.*//" Input_file
.
sed -e " ##Initiating sed command here with adding the script to the commands to be executed
s/ ##using s for substitution of regexp following it.
\#.* ##telling sed to match a line if it has # till everything here.
//" ##If match found for above regexp then substitute it with NULL.