Text-Processing
字元串中的新行數為整數
我想在一個字元串中找到新行的數量,然後在
while
循環中使用這個數字作為限制。我可以使用以下方法查找並寫入行數:
echo "$MY_STRING" | grep -c '$'
為了將行數設為整數並在 while 循環中使用它,我這樣做:
MYNUM="$MY_PEERS" | grep -c '$'
但是,這一行會立即將 0(不是我的字元串中的行數)寫入終端。此外,我不能
MYNUM
在while
循環中使用。(我$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