tail -n +7 1.txt |head -n -2|awk '{print "sql", $1,"-c groom table " $5 ,"versions"}'
sql DB1 -c groom table T1 versions
sql DB2 -c groom table T2 versions
sql DB3 -c groom table T3 versions
but i want out should be
sql DB1 -c "groom table T1 versions"
sql DB2 -c "groom table T2 versions"
sql DB3 -c "groom table T3 versions"
when i try this
tail -n +7 1.txt |head -n -2|awk '{print "sql", $1,""""-c groom table " $5 ,"versions"}'
awk: {print "sql", $1,""""-c groom table " $5 ,"versions"}
awk: ^ unterminated string
Can some one suggest how can i do achieve this ?
Try:
awk '{print "sql " $1 " \"-c groom table " $5 " versions\""}'
Hello rocking77,
Could you please try this and let me know if this helps, this solution considers like you have data in sample Input_file shown format only.
awk -vs1="\"" -F"-c " '{A=$1 FS;for(i=2;i<=NF;i++){A=A?A s1 $i s1:s1 $i s1};print A;A=""}' Input_file
Output will be as follows.
sql DB1 -c "groom table T1 versions"
sql DB2 -c "groom table T2 versions"
sql DB3 -c "groom table T3 versions"
EDIT: Or let's try to solve the command shown by you in post, not tested though.
tail -n +7 1.txt | head -n -2| awk -vs1="\"" '{print "sql " $1 " -c " s1 "groom table " $5 " versions" s1}'
Thanks,
R. Singh
Variation with printf:
awk '{printf "sql %s -c \"groom table %s versions\"\n", $1, $5}'