を動作しません。 Awk
およびbash
を一緒に含む。私はなステートメント'$3 == "A" && $4 == "B"
すなわち
$ cat file.csv
junk#21#A#B
junk#22#C#D
junk#20#A#B
junk#19#D#E
として生成されたサンプルの入力のために、あなたはあなたがする必要がある
Awk
で
if-else
句をしたい
awk -F'#' '$3 == "A" && $4 == "B"{c+=$2;} END{printf "count=%d\n",c}' file.csv
count=41
と仮定すると、暗黙的に和演算のみであれば$3
対等のアクションを行うことA
と$4
はB
となります。if
の明示的な使用は何か以下、
awk -F'#' '{if ($3 == "A" && $4 == "B") {c+=$2;}} END{printf "count=%d\n",c}' file
count=41
これは、ファイルをループ/解析するための純粋なbash
スクリプトを使用することをお勧めませですが、方法をしたい場合は単なる練習のために、あなたは
#!/bin/bash
unset count
# The '_' in read implies ignore rest of the line
while IFS='#' read -r col1 col2 col3 col4 _
do
[[ "$col3" == "A" && "$col4" == "B" ]] && ((count+=col2))
# Here the '[[' implies the if-clause and '&&' implies do on true condition
done<file
printf "%d\n" "$count"
ような何かを行うことができます
あなたは 'Awk'と' shell'のコンストラクトを一緒にミキシングしています。 – Inian
はい。私はシェルとLinuxの機能については悩んでいます。私は、第2列をif節で合計したいだけです。それは可能ですか? –
いくつかのサンプルデータを投稿してください。 –