2010-03-14 64 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