file.txt 如下:
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 如下:
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]}
像这样:
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