Unix 比较两个文件并移动第三个文件中的不同记录
嗨,我还有一个脑筋急转弯给你们大家;我有2个文本文件,我需要在行中找到差异,并在第三个文件中写入,但在相同的分区下 例如: 档案:1Unix 比较两个文件并移动第三个文件中的不同记录,unix,Unix,嗨,我还有一个脑筋急转弯给你们大家;我有2个文本文件,我需要在行中找到差异,并在第三个文件中写入,但在相同的分区下 例如: 档案:1 ==================== ============================== ======================== ============================== JOB STATUS - Activity ==================== ==============================
==================== ============================== ======================== ==============================
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。它应该只输出新文件中的公共行和行;但这当然包括未更改的数据以及标题,这意味着它与新文件相同。您需要一个脚本,该脚本通过头进行复制,否则只输出新文件中根本不在原始文件中或已更改的条目。希望这个描述能告诉你如何继续。你能帮我写一个脚本来实现这一点吗。