UNIXで二つのファイルを使って別ファイルを出力する
処理をしたいのですが、awkで二つのファイルを扱う方法
が分かりませんでした。
やりたい処理は以下のような事です。
ファイルAの1行目"AAA B"と同じ行がファイルBにあったら、ファイルAの"AAA B"の次の行に、
ファイルBの次の行"YYY bbb"を挟み込みます。
もし、ファイルBに同じ行がなかったら、
ファイルAの次の行に"NG"を挟み込みます。
[ファイルA]
AAA B
ZZZ B
AAA C
ZZZ C
AAA D
ZZZ D
[ファイルB]
AAA B
YYY bbb
AAA C
YYY bbb
[出力ファイル]
AAA B
YYY bbb
ZZZ B
AAA C
YYY ccc
ZZZ C
AAA D
NG
どなたか良いスクリプトありましたら
教えていただけないでしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
perlで書くと、こんな感じでしょうか:
% cat a.pl
open( FA, $ARGV[0] ) or die;
open( FB, $ARGV[1] ) or die;
while ( $a = <FA> ){
print $a;
if ( eof( FB ) ){ undef $b; } else { $b = <FB>; }
print "NG\n" unless $a eq $b;
last unless defined( $b );
$a2 = <FA>;
$b2 = <FB>;
print $b2, $a2 if $a eq $b;
}
質問で出ている例だと、処理できますが、それ以外の場合は動作保証外ですな。
スクリプトありがとうございます。
試してみると、確かに出力結果が正しく出てくれました。
あとは、fileAの行が入れ替わっていても、差込が出来るように拡張してみたいと思います。
ただ、perlはawk以上に初心者なので、これを機会に勉強してみようと思います。
ありがとうございました。
No.1
- 回答日時:
返答ありがとうございます。
diffコマンドは比較だけだと思っていたのですが、実際はいろんな処理が出来るんですね。
参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
- Excel(エクセル) セルの値からファイルを複数作りたい 2 2022/10/06 12:42
- Excel(エクセル) 配列操作について 5 2023/04/18 07:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
ファイルの先頭行を全て削除したい
-
onedriveの中身を削除したらパ...
-
バッチファイルで変数の中身を...
-
同期センターのマークが出てま...
-
.pkgというファイルについて。
-
教えてください!困ってます。
-
ファイルの単位
-
ODBCエラー「admin」によってロ...
-
クラリスワークスのファイルを...
-
コマンドプロンプトによるフォ...
-
セキリュティ カタログとは?
-
クラリスワークスをWINDOWS...
-
emlをtxtに変換するには?
-
VScodeでjarファイルを開く方法
-
teratrermを使ったデータの送信...
-
リナックスの特殊ファイル「ソ...
-
クローム拡張機能を自動インス...
-
ISOイメージとIMG+cueの違い
-
BAKファイルを非表示にする方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
onedriveの中身を削除したらパ...
-
同期センターのマークが出てま...
-
教えてください!困ってます。
-
ファイルの先頭行を全て削除したい
-
コマンドプロンプトによるフォ...
-
emlをtxtに変換するには?
-
バッチファイルで変数の中身を...
-
ファイルの単位
-
Windows10 フォルダ内の自動並...
-
クラリスワークスのファイルを...
-
iMovieとgifファイルの読み込み...
-
macのdmgファイル(動画)をMP4...
-
mrl→midファイルへ
-
フォルダ内の一覧を印刷するには?
-
外字ファイル、eudc.tte と e...
-
office365 ファイルを削除したい
-
バッチファイルからタスクスケ...
-
VScodeでjarファイルを開く方法
-
.pkgというファイルについて。
おすすめ情報