【发布时间】:2020-02-12 01:40:23
【问题描述】:
我有一个名为 text 的文本文件:行和列是:
1 A 18 -180
2 B 19 -180
3 C 20 -150
50 D 21 -100
128 E 22 -130
140 F 23 -0
如果我们想使用 while 循环逐行迭代,那就是:
while read -ra a; do [[ ${a[3]} != -0 ]] && ((a[3]+=42)); echo "${a[@]}"; done < file
输出如下:
1 A 18 -138
2 B 19 -138
3 C 20 -108
50 D 21 -58
128 E 22 -88
140 F 23 -0
上面一行发生的事情是在第 4 列的每一行中添加42,除非有0.
如何使用第一列选择多个列范围?例如,我只想从第一列中选择2 to 50,这意味着我只想打印2nd, 3rd and 4th 列。因此输出将是
2 B 19 -138
3 C 20 -108
50 D 21 -58
【问题讨论】: