使用读取行读取多行

问题描述 投票:0回答:2

好吧,我绝对不是这个菜鸟(只是几周前才开始尝试为我的工作编写代码),所以请对我轻松一点aix系统上的IM我有file1,file2和file3,它们都包含1列数据(文本或数字)。

file1
VBDSBQ_KFGP_SAPECC_PRGX_ACCNT_WKLY
VBDSBQ_KFGP_SAPECC_PRGX_ADDRM_WKLY
VBDSBQ_KFGP_SAPECC_PRGX_COND_WKLY
VBDSBQ_KFGP_SAPECC_PRGX_CUSTM_WKLY
VBDSBQ_KFGP_SAPECC_PRGX_EPOS_DLY
VBDSBQ_KFGP_SAPECC_PRGX_INVV_WKLY

file2
MCMILS03
HGAHJK05
KARNEK93
MORROT32
LAWFOK12
LEMORK82


file3
8970597895
0923875
89760684
37960473
526238495
146407

每个文件中的行数完全相同。我还有一个名为“ dummy_file”的文件,这是我要拉出,更换零件并弹出的新文件。

WORKSTATION#JOB_NAME
SCRIPTNAME "^TWSSCRIPTS^SCRIPT"
STREAMLOGON "^TWSUSER^"
-job JOB_NAME -user USER_ID -i JOB_ID
RECOVERY STOP

我只需要替换此文件中我关心的3个字符串,对于以后使用的虚拟文件,它们将始终相同

JOB_NAME
JOB_ID
USER_ID

[JOB_NAME有2个条目,其他只有1个。我想要的是获取原始文件,用文件1的第1行替换两个JOB_NAME条目,然后用文件2的第1行替换USER_ID,然后用文件3的第1行替换JOB_ID,然后将其扔到新文件中我想对文件1、2和3中的所有行重复此过程,因此下一个将其条目替换为3个文件的第2行,然后下一个将其条目替换为3个文件的第3行,然后将所有文件中第3行的内容,依此类推,依此类推,等等)

原始文件和预期的输出如下:

WORKSTATION#JOB_NAME
SCRIPTNAME "^TWSSCRIPTS^SCRIPT"
STREAMLOGON "^TWSUSER^"
-job JOB_NAME -user USER_ID -i JOB_ID
RECOVERY STOP



WORKSTATION#VBDSBQ_KFGP_SAPECC_PRGX_ACCNT_WKLY
SCRIPTNAME "^TWSSCRIPTS^SCRIPT"
STREAMLOGON "^TWSUSER^"
-job VBDSBQ_KFGP_SAPECC_PRGX_ACCNT_WKLY -user MCMILS03 -i 8970597895
RECOVERY STOP

据我所知(再次知道它的废话)

file="/dir/dir/dir/file1"

while IFS= read -r line
do
cat dummy_file | sed "s/JOB_NAME/$file1/" | sed "s/JOB_ID/$file2/" | sed "s/USER_ID/$file3"  #####this is where i get stuck as i dont know how to reference file2 and file3##### >>new_file.txt
done

好吧,我对此绝对是个菜鸟(只是几周前才开始尝试为我的工作编写代码),所以请对我轻松一点,在aix系统上,即时消息我有file1,file2和file3,它们都包含1列数据...

bash sed line aix
2个回答
0
投票

这可能对您有用(GNU并行和sed):


0
投票

使用GNU awk:

© www.soinside.com 2019 - 2024. All rights reserved.