bash - 检查字符串是否包含换行符

Val*_*lea 5 unix bash newline

检查字符串是否包含换行符的最简单方法是什么?

例如,之后

FILE=$(find . -name "pattern_*.sh")
Run Code Online (Sandbox Code Playgroud)

我想检查换行符以确保只匹配一个文件.

cho*_*oba 13

您可以使用模式匹配:

[[ $FILE == *$'\n'* ]] && echo More than one line
Run Code Online (Sandbox Code Playgroud)


Shi*_*dim 9

如果$str包含新行,您可以查看,

if [ $(echo "$str" | wc -l) -gt 1 ];
then
     // perform operation if it has new lines
else
     // no new lines.
fi 
Run Code Online (Sandbox Code Playgroud)


Jo *_* So 3

参考您的示例:请注意,文件名也可以包含换行符。

计算文件数量的安全方法是

find -name "pattern_*.sh" -printf '\n' | wc -c
Run Code Online (Sandbox Code Playgroud)

这可以避免打印文件名,而只打印换行符。