我有一个这样的文件:
c
a
b<
d
f
我需要获取索引号。在bash脚本中以<
作为后缀的字母。我想到将文件读入数组然后将其与正则表达式.<$
匹配。但是如何获得索引号。那个匹配这个正则表达式的元素?
我需要索引号。因为我想修改此文件以获取指向的字母,将<
移动到下一行,如果它位于最后一行,则按顺序排列行并放置<
在第一行之后。
答案 0 :(得分:3)
您需要awk '/<$/ { print NR; }' <your-file>
答案 1 :(得分:1)
也可以使用Grep:
grep -n \< infile
然后:
grep -n \< infile|cut -d : -f 1
答案 2 :(得分:0)
所以我构建了源文件,
$ cat file
c
a
b<
d
f<
在awk下面,它会将<
移到下一行,但如果它是最后一行,<
将移到第一行。
awk '{ if (/</) a[NR]
sub(/</,"")
b[NR]=$0 }
END{ for (i in a)
{ if (i==NR) { b[1]=b[1] "<" }
else{ b[i+1]=b[i+1] "<"}
}
for (i=1;i<=NR;i++) print b[i]
}' file
c<
a
b
d<
f