2017-03-27 37 views
1

我想刪除在(sed中作爲變量分配的)(NR == 1和某個行號)範圍中給出的行。例如,我想刪除行號從1到$ ln。這裏ln指的是變量名稱。 這就是我所做的。但事實並非如此。我非常感謝你的幫助。刪除給定範圍之間的線條

cat $FILENAME | awk ' /TotEng/{ln =FNR}END {print ln} 
echo $ln 
sed -e '1,{$ln}d' $FILENAME 

我應該如何修改該腳本以刪除(1和$ ln)之間的行?

+0

您是否試圖訪問'sed'中的'awk'變量?如果是這樣,你不能。 – sat

+0

'awk -v num =「$ ln」'NR> num'file'將從行'$ ln + 1'打印。 – fedorqui

+0

我試過了。但是它提供了一個空文件。 @fedorqui – user2100161

回答

2

以去除在(NR == 1,並有一定的線數 )的範圍內給定行

可以與單個sed命令實現它:

sed '1,/TotEng/d' $FILENAME 

1,/ regexp/表單將匹配它的開頭s的範圍,並因此使得範圍跨越到第二常規 表達式的發生。