2010-03-14 67 views
2

这可能是一个简单的答案,但我卡住了,所以在这里。使用可变的行号从文件中删除一行

sed '3d' filename # (or something like that) 

我在尝试使用$VARIABLE而不是号码时遇到问题。

任何人都知道如何让这个工作,或任何其他选择?

回答

8

你的意思是这样的:

bash$ VARIABLE=3 
bash$ sed "${VARIABLE}d" filename 

(我不知道这是否是正确使用sed命令的,我只知道这是你将如何使用一个变量旁边的bash语法书。 )

1
$ variable=3 
$ awk -vvar="$variable" 'NR!=var' file 

使用外壳(bash)的

variable=3 
i=1 
while read -r line 
do 
    [ "$i" -ne "$variable" ] && echo "$line" 
    ((i++)) 
done <"file" > newfile 
+0

1。替代变量赋值为'awk'(POSIX IIRC):'awk'NR!= var'vvar =“$ variable”file' :) – vladr 2010-03-15 14:32:47

+0

该替代语法的唯一问题是如果'vvar'内部没有值BEGIN块。 – ghostdog74 2010-03-15 14:53:16