Объяснение для команды bash

#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 ??