Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 比较两个文件并移动第三个文件中的不同记录_Unix - Fatal编程技术网

Unix 比较两个文件并移动第三个文件中的不同记录

Unix 比较两个文件并移动第三个文件中的不同记录,unix,Unix,嗨,我还有一个脑筋急转弯给你们大家;我有2个文本文件,我需要在行中找到差异,并在第三个文件中写入,但在相同的分区下 例如: 档案:1 ==================== ============================== ======================== ============================== JOB STATUS - Activity ==================== ==============================

嗨,我还有一个脑筋急转弯给你们大家;我有2个文本文件,我需要在行中找到差异,并在第三个文件中写入,但在相同的分区下

例如:

档案:1

==================== ============================== ======================== ==============================
JOB STATUS - Activity 
==================== ============================== ======================== ==============================
JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_audt_trxn_refnc_uld.ksh ,20110317 ,Mar 17,04:41:49 ,Mar 17,04:43 ,SUCCESS 

d_isso_actvy_log_uld_cln.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_voy_svc_sesn_ctm.ksh , ,~~~ UPSTREAM PENDING/YET TO START ~~~ , , 

d_svc_evt_sumry_ld_ctm.ksh , ,~~~ UPSTREAM PENDING/YET TO START ~~~ , , 
==================== ============================== ======================== ==============================
JOB STATUS - Schedule 
==================== ============================== ======================== ==============================
JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_audt_trxn_refnc_uld.ksh ,20110317 ,Mar 17,04:41:49 ,Mar 17,04:43 ,SUCCESS 

d_isso_actvy_log_uld_cln.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_voy_svc_sesn_ctm.ksh , ,~~~ UPSTREAM PENDING/YET TO START ~~~ , , 

d_svc_evt_sumry_ld_ctm.ksh , ,~~~ UPSTREAM PENDING/YET TO START ~~~ , , 
==================== ============================== ======================== ==============================
JOB STATUS - Linkage 
==================== ============================== ======================== ==============================
JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_audt_trxn_refnc_uld.ksh ,20110317 ,Mar 17,04:41:49 ,Mar 17,04:43 ,SUCCESS 

d_isso_actvy_log_uld_cln.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_voy_svc_sesn_ctm.ksh , ,~~~ UPSTREAM PENDING/YET TO START ~~~ , , 

d_svc_evt_sumry_ld_ctm.ksh , ,~~~ UPSTREAM PENDING/YET TO START ~~~ , , 
############################################################################################################################# 
档案:2

==================== ============================== ======================== ==============================
JOB STATUS - Activity 
==================== ============================== ======================== ==============================
JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_audt_trxn_refnc_uld.ksh ,20110317 ,Mar 17,04:41:49 ,Mar 17,04:43 ,SUCCESS 

d_isso_actvy_log_uld_cln.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_voy_svc_sesn_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_svc_evt_sumry_ld_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 
==================== ============================== ======================== ==============================
JOB STATUS - Schedule 
==================== ============================== ======================== ==============================
JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_audt_trxn_refnc_uld.ksh ,20110317 ,Mar 17,04:41:49 ,Mar 17,04:43 ,SUCCESS 

d_isso_actvy_log_uld_cln.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_voy_svc_sesn_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_svc_evt_sumry_ld_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 
==================== ============================== ======================== ==============================
JOB STATUS - Linkage 
==================== ============================== ======================== ==============================
JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_audt_trxn_refnc_uld.ksh ,20110317 ,Mar 17,04:41:49 ,Mar 17,04:43 ,SUCCESS 

d_isso_actvy_log_uld_cln.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_voy_svc_sesn_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_svc_evt_sumry_ld_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

#############################################################################################################################
输出文件:

==================== ============================== ======================== ==============================
JOB STATUS - Activity 
==================== ============================== ======================== ==============================
JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_svc_sesn_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_svc_evt_sumry_ld_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

==================== ============================== ======================== ==============================
JOB STATUS - Schedule 
==================== ============================== ======================== ==============================
JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_svc_sesn_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_svc_evt_sumry_ld_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

==================== ============================== ======================== ==============================
JOB STATUS - Linkage 
==================== ============================== ======================== ==============================
JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_svc_sesn_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_svc_evt_sumry_ld_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 
在上述两个文件(文件1和文件2)中,所有3个文件的第3行和第4行都不同 分区,因此我只想将3&4行frm文件2写入一个新文件 (输出文件)。因此,我需要一个脚本来查找两行之间不匹配的行 文件,并写入同一分区下的第三个文件

我尝试了下面的查询,但我无法在下面得到输出结果 对应分区

awk 'NR==FNR && !/^=/{a[$0]++;next} !/^=/{if(/^JOB /){y=$0;tmp getline;print tmp;print y}if(!a[$0]){print $0}}'  file1 file2
我得到如下输出,但我需要输出文件:

JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_svc_sesn_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_svc_evt_sumry_ld_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_svc_sesn_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_svc_evt_sumry_ld_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

JOB NAME ,ODATE ,START ,FINISH ,STATUS 

d_voy_svc_sesn_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

d_svc_evt_sumry_ld_ctm.ksh ,20110317 ,Mar 17,03:20:49 ,Mar 17,03:31 ,SUCCESS 

从命令行使用diff工具。使用sed或grep之类的工具筛选输出,然后将其重定向到目标文件。

comm-1 file1 file2 | sed的/^\t/'
可能吗?(您可能需要使用文字选项卡而不是
\t
Ctrl-V
选项卡

使用diff工具。请参阅页面以获取帮助。

嘿,这只是给出了两个文件之间的差异,这可以通过我的代码本身实现,但我需要在相应的标题下使用不同的记录,例如thinko。它应该只输出新文件中的公共行和行;但这当然包括未更改的数据以及标题,这意味着它与新文件相同。您需要一个脚本,该脚本通过头进行复制,否则只输出新文件中根本不在原始文件中或已更改的条目。希望这个描述能告诉你如何继续。你能帮我写一个脚本来实现这一点吗。