我试图使用bash shell变量作为命令参数,但不能
这是有效的:
sed -n '2p' <file>
给我文件的第2行
我想做什么:
sed -n '$variable p' <file>
当然,这不起作用。我尝试了所有可能的语法组合而没有成功。如何将变量代入常量?
答案 0 :(得分:3)
变量在双引号内扩展,而不是在单引号内扩展:
sed -n "$variable p" <file>
答案 1 :(得分:1)
@Barmar对你的问题有正确的答案。
我担心你会把它当作一种迭代文件行的技术。
效率非常低:
for linenum in $(seq $(wc -l < filename)); do
line=$(sed -n "$linenum p" filename)
# do something with $line
done
迭代文件行的惯用方法是:
while IFS= read -r line; do
# do something with "$line"
done < filename
答案 2 :(得分:0)
将变量放在字符串之外: sed -n $ variable&#39; p&#39;