shell程序求助

shell程序求助

使用shell编辑一个脚本shella.sh,执行脚本shella.sh,在当前目录下生成文件a。文件a有100行,每一行只有两列,并且以冒号分割,每一行的第一列的内容为column加上行号,第二列为column加上两次行号。例如第一行为:
column1:column11,第二行为column2:column22,第22行为:column22:column2222,第100行为:column100:column100100
column1:column11
column2:column22
````````````````
````````````````
````````````````
column22:column2222
````````````````
````````````````
column100:column100100
然后编辑一个shell脚本shellb.sh,分析文件A,然后重新输出到当前目录下的文件B中,文件B中包含多个段,每一段的格式为:
mod{
uid=$colum1
domain=eyou.com
userPassword=$column2
}
从"mod{}"为一个完整的段,$column1和$column2分别为文件A中的第一列和第二列的值。由文件A中的每一行,都能生成文件B中的相应的段。      
复制内容到剪贴板
代码:
[color=red]% cat a.sh[/color]
#! /bin/bash

> A
for ((i = 1; i <= 100; ++i)); do
    echo "column$i:column$i$i" >> A
done
[color=red]% cat b.sh[/color]
#! /bin/bash

> B
while read line; do
    uid=${line%:*}
    passwd=${line#*:}
    echo "mod {" >> B
    echo "  uid=$uid" >> B
    echo "  domain=eyou.com" >> B
    echo "  userPassword=$passwd" >> B
    echo "}" >> B
done < A
      
都用一句话就可以了
seq 100 |awk '{printf("column%s:column%s%s\n",$1,$1,$1 )}'>a

cat a |awk -F: '{printf("mod{\nuid=%s\ndomain=eyou.com\nuserPassword=%s\n}\n",$1,$2)}'>b