grepのオプションを使用して、-cこれに一致する行をカウントすることにより、これを実現できます。$文字が行末に一致することに注意してください。また、改行を保持するために\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
また、とを使用してファイル(または変数/ stdout)でカウントおよびファイルを作成するためにnewlines使用することもできます。 wccharacterswordswc -mwc -w
または、たとえば、変数に含まれていない一意の文字trに置き換えるために使用するのはどうですか。\n
echo "$test" | tr '\n' '_'
one_two_three_
次にgrep、置き換えられた文字、この場合は_
または使用するcat -E
echo "$test" | cat -E
one$
two$
three$
cat-Eまたは各行の終わりに--show-ends表示されます。$