Text-Processing

字元串中的新行數為整數

  • March 12, 2017

我想在一個字元串中找到新行的數量,然後在while循環中使用這個數字作為限制。

我可以使用以下方法查找並寫入行數:

echo "$MY_STRING" | grep -c '$'

為了將行數設為整數並在 while 循環中使用它,我這樣做:

MYNUM="$MY_PEERS" | grep -c '$'

但是,這一行會立即將 0(不是我的字元串中的行數)寫入終端。此外,我不能MYNUMwhile循環中使用。(我$MYNUM在中使用while)如何獲得行數以便可以在while循環中使用它作為限制?

雖然我不完全理解你為什麼需要這個,但這是你可以完成它的一種方法。關鍵是$( )擷取輸出並將其分配給變數。

程式碼:

#!/usr/bin/env bash
IFS='' read -r -d '' TEST_STR <<-'EOF'
   Test text
   quick brown fox
   lazy dog
EOF

NEW_LINE_COUNT=$(echo "$TEST_STR" | wc -l)

echo "$TEST_STR"
echo "$NEW_LINE_COUNT"

結果:

Test text
quick brown fox
lazy dog

4

您無需計算多行字元串中的行數即可查看各個設備。與數組變數串聯的for循環可以在這裡使用,如下所示:

IFS=$'\n' read -d '' -r -a Multi_Line_Str <<STR
   $(printf '%s\n' 'device_'{A..E})
STR

for device in "${Multi_Line_Str[@]}"
do
   echo "<$device>"
done

引用自:https://unix.stackexchange.com/questions/350858