Bash 如何通过检查换行符确保只返回一个文件

Bash 如何通过检查换行符确保只返回一个文件,bash,unix,newline,Bash,Unix,Newline,检查字符串是否包含换行符的最简单方法是什么 比如说, FILE=$(find . -name "pattern_*.sh") 我想检查换行符以确保只有一个文件匹配。如果$str包含新行,您可以通过 if [ $(echo "$str" | wc -l) -gt 1 ]; then // perform operation if it has new lines else // no new lines. fi 您可以使用模式匹配: [[ $FILE == *$'\n'*

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

比如说,

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

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

如果
$str
包含新行,您可以通过

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

您可以使用模式匹配:

[[ $FILE == *$'\n'* ]] && echo More than one line

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

一种安全的文件计数方法是

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

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

甚至
-printf'x'
来保存字符。不需要打印换行符。不需要-true,但是在哪里保存字符?选择您喜欢的内容…在我的情况下,没有美元符号更好。我来这里是为了回答“检查字符串是否包含换行符bash”,在我的情况下,我需要
'\r'
,而不是
'\n'
\r
不是换行符,请参阅。