我有一个文件,它是我们服务器中所有autosys作业的jil代码的摘录。
示例jil代码:
permission:gx,wx
date_conditions:yes
days_of_week:all
start_times:"05:00"
condition: notrunning(appDev#box#ProductLoad)
我们希望为服务器中的所有作业添加新的依赖条件 所以我们需要在行尾添加一个新字符串(具有依赖条件的行),如下所示,然后将作业重新加载到服务器中:
condition: notrunning(appDev#box#ProductLoad) & s(new_job_dependency)
我们在服务器中有10000多个作业(文件中有100K行数据),并且不能逐行读取并进行更改。
我们必须在行的开头搜索字符串'condition:',然后在同一行的末尾添加新字符串'new_job_dependency'。
有人可以建议一种方法来实现这个目标吗?
答案 0 :(得分:0)
如何用一些perl魔法替换所有这些
perl -i -pe 's#^condition: (.*)$#condition: $1 & s(new_job_dependency)#g' filename
答案 1 :(得分:0)
sed
可以帮助您:
$ sed '/^condition:/s/$/ \& s(new_job_dependency)/' file
permission:gx,wx
date_conditions:yes
days_of_week:all
start_times:"05:00"
condition: notrunning(appDev#box#ProductLoad) & s(new_job_dependency)
如果您希望动态更新文件并创建-i.bak
备份文件,则可以添加.bak
。
sed -i.bak '/^condition:/s/$/ \& s(new_job_dependency)/' file
要将其应用到特定目录,请执行以下操作:
sed -i.bak '/^condition:/s/$/ \& s(new_job_dependency)/' your_dir/files*