如何使用存储在变量中的亚麻的sed删除ubuntu中的一行?

时间:2015-03-27 10:34:46

标签: ubuntu sed line-numbers

我正在编写一个脚本来删除ubuntu中的一行文本文件,我的脚本会询问用户要删除的行,并将行号存储到变量中。但是,我不知道如何使用变量sed,我搜索了很多关于sed的话题。不幸的是,只有这样的事情:

sed '2d' file1 > file2

我想要的是

read index
# I have tried:
sed ($index)d file1 > file2 # didn't work
sed $(index)d file1 > file2 # didn't work

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在sed代码中使用用户定义的变量会引发麻烦 - 如果用户输入s/^/rm -rf \//e;,则无法确定是否要在其中输入数字。而是使用awk:

awk -v line="$index" 'NR != line' filename

如果你真的想用sed做,

sed "${index}d" filename
只要用户不试图惹你,

就会。如果用户与你混淆,它会以可怕的方式爆炸。