【发布时间】:2019-11-29 14:51:06
【问题描述】:
我想使用 shell sed 从第 n 行开始循环文件,我可以使它适用于整数(下面的示例从第 5 行开始),但我想用 sys 参数变量替换整数: linesToBegin= $1
代码如下:
sed -n '5,$ p' twitter_ids.txt | while read linecontent
do
echo $linecontent
done
当我用linesToBegin替换数字5时:
sed -n '$linesToBegin,$ p' twitter_ids.txt | while read linecontent
我收到一个错误提示
sed: -e expression #1, char 3: extra characters after comman
【问题讨论】:
-
单引号不能扩展变量,双引号可以。
-
您可能在 shell 循环上一开始就走错了路。见why-is-using-a-shell-loop-to-process-text-considered-bad-practice。此外,使用
tail -n +"$linesToBegin"比使用sed跟踪文件更有意义。
标签: bash shell loops variables sed