#bash #sed #stringstream
#bash #sed #stringstream
Вопрос:
Я знаю, какова функция команд bash, но мне нужно некоторое объяснение для регулярного выражения. bash должен иметь возможность перебирать текстовые файлы в текущем каталоге и удалять пустые строки.
$sed '/^$/d` -i *txt
sed = *s*tream *ed* itor
что означает ‘/^$/d`?
Ответ №1:
Это регулярное выражение, и действие заключается в том, что оно удаляет совпадающие строки. ( /d
). Регулярное выражение соответствует пустым строкам — ^
это «начало строки» и $
это «конец строки»
Комментарии:
1. как насчет ‘и`, в чем разница?
2. Ответный шаг — это расширение команды. Из чего бы вы это ни скопировали, используется неправильная кавычка. Она заключена в кавычки с
'
для экранирования определенных символов из командной строки ($
). Как бы то ни было, это не сработает.3. Спасибо Дейнит. ответное `должно быть, пришло из bash для dir-d` извините. это должно было быть так $sed ‘/^$ /d’ -i * txt ??