【发布时间】:2020-04-13 05:54:00
【问题描述】:
我有一个包含 8000 行的文件,我想打印第 1、4、8、12、...、7996 行。
我试过这段代码
for j in {1 .. 8000}
do
k= $((4 * $j))
print k
sed -n $k P test.dat >> test.dat1
done
但是出现了这个错误:
./test.csh:第 3 行:4 * {1:语法错误:操作数预期(错误标记为“{1”)
这是什么问题,我该怎么办?
【问题讨论】:
-
错误信息表明您使用的是
csh,而不是 Bash。这些是根本不同的语言。 -
如果要从第一行开始每隔 4 行,则顺序为 1, 5, 9, 13, ...
-
不惜一切代价避免使用 csh。它是坏的,有缺陷的,只是有缺陷的。 Top 10 reasons not to use C shell 和 csh programming considered harmfull