文件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上测试通过本回答被网友采纳
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
cat inputdata.txt | while read line
do
ele=`echo $line | awk '{print $1}'`
mass=`echo $line | awk '{print $2}'`
touch $ele$mass.tinp
# 剩下的自己写吧 就很容易了
done