2014-10-16 2 views
0

Привет всем,нужно заменить строку из file1 в file2

У меня есть два файла ft2 в качестве источника и sqll.ksh в качестве пункта назначения.

Мне нужно изменить control=raja на control=kartik1 и т. Д. Для всех остальных.

kmariappan $ cat ft2.txt 
karthik1 
karthik2 
karthik3 

kmariappan $ cat sqll.ksh 
sqlldr aja/raja123 control=raja log=ssed.log 
sqlldr aja/raja123 control=raja1 log=ssed.log 
sqlldr aja/raja123 control=raja2 log=ssed.log 

expected output 

sqlldr aja/raja123 control=karthik log=ssed.log 
sqlldr aja/raja123 control=karthik1 log=ssed.log 
sqlldr aja/raja123 control=karthik2 log=ssed.log 
+0

Является ли это один раз вещь? Не можете ли вы просто использовать текстовый редактор и найти и заменить? – ariscris

+0

только команды unix else ksh, чтобы пойти с :( – KarthikRAja

ответ

0
awk ' 
    NR==FNR {name[NR]=$1; next} 
    {sub(/control=[^[:blank:]]+/, "control=" name[FNR]); print} 
' ft2 sqll.ksh 

Если вы удовлетворены, что он работает, добавьте в конце команды

> sqll.new && mv sqll.new sqll.ksh 
+0

Спасибо большое @glenn – KarthikRAja

Смежные вопросы