的兩個數字在我的文件我有以下結構: -檢索和添加文件
A | 12 | 10
B | 90 | 112
C | 54 | 34
我所要做的就是我要加列2和第3列,並打印帶有列1
結果輸出: -
A | 22
B | 202
C | 88
檢索到兩列,但不知道如何添加 我所做的是: - cut -d ' | ' -f3,5 myfile.txt
如何添加這些列並顯示。
的兩個數字在我的文件我有以下結構: -檢索和添加文件
A | 12 | 10
B | 90 | 112
C | 54 | 34
我所要做的就是我要加列2和第3列,並打印帶有列1
結果輸出: -
A | 22
B | 202
C | 88
檢索到兩列,但不知道如何添加 我所做的是: - cut -d ' | ' -f3,5 myfile.txt
如何添加這些列並顯示。
你可以用awk輕鬆做到這一點。
awk '{print $1," | ",($3+$5)'} myfile.txt
也許會工作。
一個bash的解決方案:
#!/bin/bash
while IFS="|" read f1 f2 f3
do
echo $f1 "|" $((f2+f3))
done < file
你可以用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在此處接受輸入文件名作爲參數。
我會說'BEGIN {FS =「|」}'並使用'$ 1','$ 2'和'$ 3'會更直觀,更強大。 – Amadan
或使用'-F'|'' –