bash - проверить, содержит ли строка символ новой строки - PullRequest
5 голосов
/ 27 января 2012

Каков самый простой способ проверить, содержит ли строка символ новой строки?

Например, после

FILE=$(find . -name "pattern_*.sh")

Я хотел бы проверить наличие новой строки дляубедитесь, что сопоставлен только один файл.

Ответы [ 3 ]

12 голосов
/ 27 января 2012

Вы можете использовать сопоставление с образцом:

[[ $FILE == *$'\n'* ]] && echo More than one line
9 голосов
/ 27 января 2012

Если $str содержит новую строку, вы можете проверить ее,

if [ $(echo "$str" | wc -l) -gt 1 ];
then
     // perform operation if it has new lines
else
     // no new lines.
fi 
2 голосов
/ 27 января 2012

Чтобы сослаться на ваш пример: обратите внимание, что имена файлов также могут содержать символы новой строки.

Безопасный способ подсчета файлов:

find -name "pattern_*.sh" -printf '\n' | wc -c

Это позволяет избежать печати имени файла и печатать тольковместо новой строки.

...