0

共有する必要があるアドバイスを事前にありがとう。

テキスト ファイル内の数値を合計するスクリプトを Hazel に書き込もうとしています。私はあまり経験がなく、bash と Applescript の両方で多くの異なるソリューションを試しましたが、結果はありませんでした。

これは、「: $」で始まる数字を追加したいテキスト ファイルの例です。

**15.44.04**

Art materials
: $9

Transport
: $4.50

**15.44.21**

Art materials
: $18

Art materials
: $25

Food
: $11.50

**20.03.53**

Miscellaneous
: $20

**20.04.02**

Food
: $10

ファイルの末尾に値の合計を含むテキスト「**Total:」を追加したいと思います。

bash または Applescript を使用してこのようなことは可能ですか?

再度、感謝します、

ロバート

4

2 に答える 2

3

この awk ワンライナーは次のことを行う必要があります。

 awk -F'$' '{x+=$2+0}7;END{print "Total: "x}' file

ファイル全体を印刷し、行を追加します

Total: 98

最後に。

于 2013-08-08T13:27:44.670 に答える
0

Hazel でスクリプトを実行するには、シェルをそのままにして、処理中のファイルを参照するために/bin/sh使用します。$1

awk -F\$ '{x+=$NF}END{print "\n**Total: $"x}' "$1" >> "$1"

**Total上記のスクリプトは、末尾にまだ行がないファイルでのみ使用することを意図しています。**Totalこれにより、既存の行が置き換えられます。

t=$(sed '/^\*\*Total: /d' "$1")
awk -F\$ '{s+=$NF}1;END{print "\n**Total: $"s}' <<< "$t" > "$1"

sed /pattern/d行を削除します。sed コマンドの後のテキストが 2 つの改行で終わっている場合は$()、それらの両方を削除します。awk -F\$のようにフィールドセパレータを設定しますBEGIN{FS="$"}$NF(フィールド数) は最後のフィールドの値です。

于 2013-08-09T10:00:06.880 に答える