linux中shell语句执行语法出错 大家给看看什么问题

文件inpdata.txt
内容如下:Mn 66
Fe 66
Co 66
Mn 67
Fe 67
Co 67
Mn 68
Fe 68
Co 68
Fe 69
Co 69
执行语句为:
#!/bin/bash
awk '
fileout=printf "%2d%03d.tinp" $1 $2
printf "projectile n\nelement %s\nmass %s\nenergy energies\nendf y\n" $1 $2 >fileout
'inpdata.txt
目的是将上面文件的内容提取并以此命名,且批量生成第二个printf的内容的大量文件。
现在报错如下:
awk: cmd. line:2: fileout=printf "%2d%03d.tinp" $1 $2
awk: cmd. line:2: ^ syntax error
awk: cmd. line:3: printf "projectile n\nelement %s\nmass %s\nenergy energies\nendf y\n" $1 $2
awk: cmd. line:3: ^ syntax error
awk: cmd. line:4: inpdata.txt
awk: cmd. line:4: ^ syntax error

不知如何修改 请大家帮助!

第1个回答  2011-08-12
awk后不要折行,都写在一行里再试试。
第2个回答  2011-08-12
#!/bin/bash
awk '{
fileout=sprintf("%2s%03d.tinp",$1,$2) ;
printf("projectile n\nelement %s\nmass %s\nenergy energies\nendf y\n", $1,$2)>fileout ;
}' inpdata.txt
linux上测试通过本回答被网友采纳
第3个回答  2011-08-23
#/bin/sh
cat inputdata.txt | while read line
do
ele=`echo $line | awk '{print $1}'`
mass=`echo $line | awk '{print $2}'`
touch $ele$mass.tinp
# 剩下的自己写吧 就很容易了
done

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网