我是使用shell脚本的初学者。我想从已经从大文本文件中排除的几行中提取一个特定术语(例如,颞叶),并添加我一起提取的值。
例如,
Line 1: 1 3 13579 586 Right-Temporal 72 73 66 54
Line 2: 2 5 24680 587 Left-Temporal 89 44 65 56
*每个术语之间的空格非常宽,但我似乎无法将空格分开......
如果我想使用shell脚本将数字10455 + 10475加在一起,我可以输入的脚本示例是什么?我在互联网上使用多个网站搜索了这个问题,但似乎没有一个与我正在做的事情有关
答案 0 :(得分:1)
输入文字(添加额外的行以便更好地解释)
Line 1: 1 3 13579 586 Right-Temporal 72 73 66 54
Line 2: 2 5 24680 587 Left-Temporal 89 44 65 56
Line 3: 2 5 24681 587 Left-Temporal 89 44 65 56
Line 4: 2 5 24682 587 Left-Temporal 89 44 65 56
例如,如果您要过滤掉13579
& 24680
等。这是第5列,空格作为分隔符,您可以使用以下命令对这些值求和
awk '{total += $5} END {print total}' TemporalLobe.txt
注意:即使文本前面有多个空格,也会将其视为单个分隔符。例如:我添加了Line3&第4行。这两行在第5列前面有额外的空格。awk
将额外的空格视为分隔符的一部分。
假设,' Temporal'是grep
的关键。
grep Temporal TemporalLobe.txt. | awk '{total += $5} END {print total}'
同样,您可以将其应用于多个列。
grep Temporal TemporalLobe.txt. | awk '{total += $3 + $4} END {print total}'
result = 25
<强>解释强>
awk
(管道)即。 Result = ( {1 + 3} + {2 + 5} + {2 + 5} + {2 + 5})
→Result = 25