gpt4 book ai didi

shell - 如何使用 grep 命令确定字符串是否包含换行符?

转载 作者:行者123 更新时间:2023-12-04 23:58:53 25 4
gpt4 key购买 nike

假设我们有包含换行符的变量“test”,例如,\n .如果我使用以下命令:

echo "$test" | grep '\n'

结果不是我所期望的。以上 grep命令只搜索测试字符串是否包含字符 'n' 而不是换行符,因为 '\' 转义了 'n' 字符。

我应该如何编写 grep 命令来搜索特定字符串中的换行符?
仅供引用,以下内容也不正确。
echo "$test" | grep '^.*$'

最佳答案

通过使用 -c可以选择 grep 来计算与此匹配的行。请注意 $字符匹配行尾不是 \n另请参阅 $test 周围的双引号如何对于保留换行符很重要。

test="one
two
three"

echo $test | grep -c '$'
1

echo "$test" | grep -c '$'
3

您也可以针对 ^ 进行测试行首或 .*任何东西,或者在你的问题中,整行 ^.*$通过使用 -c选项。

如何关于 wc用于测试多行变量。 wc -l打印换行符计数:
echo "$test" | wc -l
3

以及 newlines您也可以使用 wccharacterswords在带有 wc -m 的文件(或变量/标准输出)中和 wc -w分别。

如何使用 tr替换 \n具有不包含在变量中的唯一字符,例如:
echo "$test" | tr '\n' '_'
one_two_three_

然后您可以 grep对于被替换的字符,在本例中 _
甚至使用 cat -E
echo "$test" | cat -E
one$
two$
three$

-E--show-ends显示 $在每一行的末尾。

关于shell - 如何使用 grep 命令确定字符串是否包含换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13335516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com