下記の処理を実現する方法を教えてください(シェルスクリプト)
【概要】
二つのファイルに記載しているディレクトリ容量を計算して、
違うファイルに出力する方法を教えてください。
・A.txt
[記載内容]
/backup1/etc/common,20
/backup1_1/etc/common,40
/backup1_2/etc/common,40
・B.txt
[記載内容]
/hoge1/etc/common,20
/hoge1_1/etc/common,35
/hoge1_2/etc/common,44
●上記ファイルを計算して下記のファイルに出力したいです。
・AB.txt
/hoge1/etc/common,0
/hoge1_1/etc/common,-5
/hoge1_2/etc/common,4
大変申し訳ありませんが宜しくお願い致します。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> カンマ区切りになっていまして、数字についてはディレクトリ容量に
du するのかと思ったがそれにしては変だと思って。ようやく分かったが B-A の結果が欲しいと言ってるのね? それならこんな感じ
paste -d, A.txt B.txt | awk -F, -v OFS=, '{print $1,$4-$2}' > AB.txt
ありがとうございます。
試してみます。
>B-A の結果が欲しいと言ってるのね?
そのとおりです。
逆にしたい(B-A)場合、「paste -d, B.txt A.txt ・・・」にしたらよいのでしょうか。
No.3
- 回答日時:
各行の、二項目目の差を出力すると言うことですかね。
gawk -F, 'FNR==NR{a[FNR]=$2;next}{print $1 "," $2-a[FNR]}' A.txt B.txt > AB.txt
>各行の、二項目目の差を出力すると言うことですかね。
そのとおりです。
ありがとうございます。
さっそく、試させていただきます。
ちなみに、下記のようにAに一行無い場合はどうなりますでしょうか。
※/下の階層名のみ違う
[記載内容]
・A.txt
/backup1_1/etc/common,40
/backup1_2/etc/common,40
・B.txt
[記載内容]
/hoge1/etc/common,20
/hoge1_1/etc/common,35
/hoge1_2/etc/common,44
No.5
- 回答日時:
No3です。
ということであれば、次のようなファイル foo を作って、
gawk -F, -f foo A.txt B.txt >AB.txt
で。
その1:B.txtの各行に対応するA.txtの行がない場合は出力しない
function f(x){split(x,y,"/");return substr(y[2],length(y[2])-2,3)}
FNR==NR{a[f($1)]=$2;next}
{if(f($1) in a)print $1","a[f($1)]-$2}
その2:B.txtの各行に対応するA.txtの行がない場合は、値0の行がA.txtにあったとして出力
function f(x){split(x,y,"/");return substr(y[2],length(y[2])-2,3)}
FNR==NR{a[f($1)]=$2;next}
{print $1","a[f($1)]-$2}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ソフトウェア 社内でのETCカードの管理方法で良い案があれば教えて下さい 社用でリース車等を使用してETCカードを 1 2023/01/17 13:37
- カスタマイズ(車) 別の車にETC車載器を乗せ換える方法は? 8 2023/08/06 15:03
- 車検・修理・メンテナンス ETCについての疑問なんですけど、 ETCってETC車載器に登録された情報で車種を判別してるんですよ 5 2022/05/01 21:37
- 英語 Collagens are the most common type used. この英文の文法的解 2 2022/07/28 10:08
- その他(ニュース・時事問題) 景観行政団化や景観計画策定が何故かあまり進んでいない。 3 2023/06/30 19:22
- その他(ゲーム) SkyrimSEのMod organizer で困っています。誰か助けてください。 1 2022/12/05 01:49
- UNIX・Linux Linuxの「/etc/hosts.allow」「/etc/hosts.deny」について 2 2022/09/29 13:20
- カスタマイズ(車) おはようございます♪ ETCについてのご質問です。 ETCレーンを通過する際に必要なこと気をつけるこ 6 2023/04/08 04:55
- 工学 以前、線形代数からフーリエ級数展開を導く上で 式v=(v, e1)e1+(v, e2)e2+…+(v 6 2022/06/29 17:24
- 英語 Extreme atrophy of the edentulous maxilla is a com 1 2023/06/28 12:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ubuntu(linux)のシャットダウン...
-
ubuntuのシャットダウンが進ま...
-
Ubuntu系とCentOS系の違いはな...
-
Ubuntuで数字だけのユーザーア...
-
ubuntuで デイスク/deb/loopと...
-
bashでシングルクォート内の変...
-
AWSでSSH接続をしたいのですが...
-
プログラミングPC、LinuxのOSパ...
-
Linux(Fedora30)のブートディ...
-
Rasberry pi のオンボードNICの...
-
新しく買ったWin11のPCでLinux...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
Windowsのローカルディレクトリ...
-
en_US.UTF-8ロケールってどのPO...
-
Ubuntu on Xorgのログインについて
-
ワイルドカードの使い方
-
VertualBox でのLinux Mint の...
-
TCPWrapper のインストールにつ...
-
ホストオンリーアダプタで接続...
-
Kali Linuxで起動できない - Mi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bashでシングルクォート内の変...
-
ubuntu(linux)のシャットダウン...
-
AWSでSSH接続をしたいのですが...
-
Linuxのパーティション番号の変...
-
ubuntuで デイスク/deb/loopと...
-
自作のウェブサイトを友人に見...
-
ubuntuのシャットダウンが進ま...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
Ubuntu系とCentOS系の違いはな...
-
Ubuntu on Xorgのログインについて
-
Windowsのローカルディレクトリ...
-
tarで纏める際に、複数場外した...
-
Linux のシェルスクリプトの強...
-
Ubuntuで数字だけのユーザーア...
-
linuxサーバーのキャッシュをク...
-
shellscript内のコマンドを、su...
-
ssl_request_logの必要性について
-
ubuntuのサーバー(virtual box)...
-
Kali Linuxで起動できない - Mi...
-
ホストオンリーアダプタで接続...
おすすめ情報