2015-07-20 28 views
0

我一直在开发一个init.d脚本,该脚本将在机器停止和启动时运行。该脚本与Tomcat服务器一起运行。该脚本将解析每个tomcat实例的配置文件,并将它们添加到名为“InstanceData”的临时文件中。内容将是这样的:解析文件中的每一行并将它们添加到shell脚本中的数组

FINC-A1:XXXX979:XXXX 
FINC-B1:XXXX979:XXXX 
FXE-A1:XXXX975:XXXX 
FXE-B1:XXXX975:XXXX 
INL-A1:XXXX994:XXXX 
INL-B1:XXXX994:XXXX 
IVR-A1:XXXX984:XXXX 
IVR-B1:XXXX984:XXXX 
LWSP-A1:XXXX982:XXXX 
LWSP-B1:XXXX982:XXXX 
LWSP-C1:XXXX982:XXXX 
MFS-A1:XXXX989:XXXX 
MFS-I1:XXXX989:XXXX 
PHYRES-A1:XXXX987:XXXX 
PHYRES-B1:XXXX987:XXXX 

每行是一个服务器与用户ID和机器分隔冒号。现在我的脚本在停止执行时工作正常。现在的问题是我想同一个域的同一台服务器需要同时启动。例如:

FINC-A1:XXXX979:XXXX 
FINC-B1:XXXX979:XXXX 

即属于FINC域,现在我想编写一个脚本,将采取从文件相同的域,并在同一时间启动它们。我的问题是提取属于同一个域的实例,如FINDIVR。请帮我写剧本。感谢所有提前。

回答

0

Ook,我能写出对我工作正常的脚本

output = $(cat instanceData.txt | awk'{print $ 1}'|削减-d'-'-f1 | uniq)

for $ in $ output; 为ref_num做 在cat instanceData.txt | grep $x

回声 “上$ ref_num执行行动”

感谢您的答复。

0

如果你想从'instanceData'文件中提取那些属于域的实例,例如FINC你可以做到以下几点:

如果你想整条生产线:

cat instanceData | awk '/FINC-.*/ { print $0 }' 

结果:

FINC-A1:XXXX979:XXXX 
FINC-B1:XXXX979:XXXX 

如果你只是想在第一场:

cat instanceData | awk -F: '/FINC-.*/ { print $1 }' 

结果:

FINC-A1 
FINC-B1 
+0

感谢您的回应,我能够提取细节,但我需要的是一个脚本实现的想法,这样我就可以遍历该文件并对具有相同域的所有行执行操作。在上述情况下,我需要在所有FINC域行上运行命令。实例数据文件可以包含更多数字行。 –

相关问题