file.txt的是如下:如何在變量(shell腳本,unix)中存儲行號?
gui : 789
gui : 789
gui : 789
gui : 789
abc : 120
的followibng給出O/P作爲
$ grep -n "gui : 789" file.txt | cut -f1 -d:
1
2
3
4
如果有N個這樣的GUI的:789,如何存儲相同的行號?
file.txt的是如下:如何在變量(shell腳本,unix)中存儲行號?
gui : 789
gui : 789
gui : 789
gui : 789
abc : 120
的followibng給出O/P作爲
$ grep -n "gui : 789" file.txt | cut -f1 -d:
1
2
3
4
如果有N個這樣的GUI的:789,如何存儲相同的行號?
您可以使用此AWK 1班輪:
awk '/gui : 789/{print NR}' file
要處理這樣的循環中:
while read l
do
echo $l
done < <(awk '/gui : 789/{print NR}' file)
編輯:這些命令適用於任何數量的文件中匹配的工作。要存儲上述行號的輸出數組:
arr=($(awk '/gui : 789/{print NR}' x))
稍後過程中,這些數組元素:
echo ${arr[0]}
echo ${arr[1]}
...
echo ${arr[5]}
@ anubhava:它打印輸出如下面是相同的,因爲我在後 這些行號要被存儲在單獨的變量作爲 一個= 1 B = 2 c項= 3 d = 4 –
它應該是通用的。 –
@JackieJames:請告訴你這裏「通用」是什麼意思,我可以肯定地編輯我的答案以反映這一點。 – anubhava
像這樣:
LINES=$(grep -n "gui : 789" file.txt | cut -f1 -d:)
的 「LINES」 變量將具有 「1 2 3 4」。
注意:你的問題是非常通用的。這個答案適用於Bash或Korn Shell。
如果你想要做處理每行,你可以這樣做:
grep -n "gui : 789" file.txt | cut -f1 -d: | while read lineno; do
: # process using $lineno
done
將輸出重定向到一個文件。 –
你問如何計算'N'? –
我必須將o/p(每行代碼)存儲在一個變量中,這在下一步中更加有用。我可以做嗎? –