如何限制字符串的最大和最小长度?

如何限制字符串的最大和最小长度?

“无”意味着没有输出。

问:如何限制管道的最小和最大长度细绳? (最小值:x>=3 个字符,最大值:x<=32 个字符)

输入:

echo 12 | MAGIC

输出:

nothing

输入:

echo 123 | MAGIC

输出:

123

输入:

echo 123456789012345678901234567890123 | MAGIC

输出:

nothing

输入:

echo 12345678901234567890123456789012 | MAGIC

输出:

12345678901234567890123456789012

答案1

这应该可以完成这项工作:

echo 123 | awk 'length >= 3 && length <= 32'

如果通过管道传递多行,它将打印 3 到 32 个字符的行。

答案2

尽管大卫的awk一个是最明显的一个,添加到列表中:

grep -xE '.{3,32}'

答案3

使用 Perl:

perl -nle 'print if length() > 2 and length() < 33'

测试1:

echo "12345678901234567890123456789012" | \
perl -nle 'print if length() > 2 and length() < 33' 

输出:

12345678901234567890123456789012

测试2:

echo "123456789012345678901234567890123" | \
perl -nle 'print if length() > 2 and length() < 33'

输出:

<Nothing>

相关内容