【发布时间】:2021-02-13 21:05:12
【问题描述】:
我已将输入数据保存在文本文件(input.txt)中,如下所示
10 25 6 3 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
我只需要在第一列的第一行每增加 5 后将第 4 列的第一行值 (3) 增加一个,我不想打扰第二行 例如,如果我将上述数据作为输入,那么预期的输出将是
10 25 6 3 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
11 25 6 3 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
12 25 6 3 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
13 25 6 3 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
14 25 6 3 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
之后我想将第一行第 4 列值的值增加 1,因此 3 将是 4 在那个时候输出应该如下所示
15 25 6 4 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
16 25 6 4 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
17 25 6 4 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
18 25 6 4 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
19 25 6 4 1 8 5 2 1 6 1
99 26 7 4 1 8 8 1 2 8 1
等等,下面给出了我的脚本,它给出了输出但没有达到我的期望,我希望我可以从专家那里得到一些想法。
#!/bin/sh
for inc in $(seq 10 1 60)
do
awk -vval=$inc '{
if(NR==1) {
$1=val
} else $4=$4;
print
}' input.txt
echo '>>>>'
done
【问题讨论】:
-
发布“预期输出”然后说“在那之后......”然后发布其他输出令人困惑。你想要两组数据输出吗?如果是这样,他们应该去单独的文件还是什么?请edit您的问题以澄清您的要求和示例,特别是因为它与拥有 2 组单独的预期输出有关。