检索并添加两个数量的文件



在我的文件中,我有以下结构:-

A | 12 | 10
B | 90 | 112
C | 54 | 34

我要做的就是添加第 2 列和第 3 列,并使用第 1 列打印结果。

输出:-

A | 22
B | 202
C | 88

我检索了两列,但不知道如何添加我所做的是:- cut -d ' | ' -f3,5 myfile.txt如何添加这些列并显示。

一个 Bash 解决方案:

#!/bin/bash
while IFS="|" read f1 f2 f3
do
   echo $f1 "|" $((f2+f3))
done < file

你可以用awk轻松做到这一点。

awk '{print $1," | ",($3+$5)'} myfile.txt也许会工作。

您可以使用

awk执行此操作:

awk 'BEGIN{FS="|"; OFS="| "} {print $1 OFS $2+$3}' input_filename

输入:

A | 12 | 10
B | 90 | 112
C | 54 | 34

输出:

A | 22
B | 202
C | 88

解释:

  • awk:调用awk工具
  • BEGIN{...}:在开始从文件中读取行之前先做一些事情
  • FS="|"FS 代表 字段分隔符。将其视为分隔符,将文件的每一行分隔为字段
  • OFS="| "OFS 代表 输出字段分隔符。与上面的想法相同,但用于输出。FS =/= 在这种情况下由于格式原因的 OFS
  • {print $1 OFS $2+$3} :对于awk读取的每一行,打印第一个字段(字母),后跟由 OFS 指定的分隔符,然后是字段 2 和字段 3 的总和。
  • input_filename : awk 在这里接受输入文件名作为参数。

相关内容

  • 没有找到相关文章

最新更新