24小时热门版块排行榜    

CyRhmU.jpeg
查看: 186  |  回复: 2
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

jury1863

金虫 (初入文坛)

[交流] 【求助】求帮忙修改一个小程序【已完结】

mkdir t_data
for i in {0..400}; do
  for j in {0..4}; do
    k=`head -n $((j+1))  v.dat|tail -n 1`
    l=`head -n $((j+1)) int.dat|tail -n 1`
    echo -n "$k $l"
    head -n $((i+4)) th/p-$((j*5)).dat|tail -n 1|awk '{print $2}'
  done > t_data/tem-$((i*10)).dat
done

以上是dat文件夹中的一个小脚本,其中v.dat, int.dat是dat文件夹中的两个已知文件,th/p-$((j*5)).dat是dat文件夹中已知的另一文件夹th中的p-$((j*5)).dat文件。t_data是运行了该脚本后在dat文件夹中产生的新文件夹。

求助若j只等于0,这个脚本应如何写?谢谢!

[ Last edited by 余泽成 on 2009-11-4 at 20:46 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
jjdg(金币+2,VIP+0):感谢交流! 11-4 02:24
余泽成(金币+1,VIP+0):专家出马了,呵呵! 11-4 10:11
jury1863(金币+10,VIP+0):谢谢! 11-4 10:48
如果只是简单改一下:
mkdir t_data
for i in {0..400}; do
  for j in 0 ; do
    k=`head -n $((j+1))  v.dat|tail -n 1`
    l=`head -n $((j+1)) int.dat|tail -n 1`
    echo -n "$k $l"
    head -n $((i+4)) th/p-$((j*5)).dat|tail -n 1|awk '{print $2}'
  done > t_data/tem-$((i*10)).dat
done
========================
原脚本在p-$((j*5)).dat比较大时运行速度比较慢,建议直接用sed来提取文本。
mkdir t_data
for i in {0..400}; do
  for j in {0..4}; do
    k=$(sed -n "$((j+1)) p" v.dat)
    l=$( sed -n "$((j+1)) p" int.dat)
   echo -n "$k $l"
    sed -n "$((i+4)) p" th/p-$((j*5)).dat|awk '{print $2}'
  done > t_data/tem-$((i*10)).dat
done
这里sed 后双引号不能改为单引号,否则无法引用变量。

[ Last edited by tjyl on 2009-11-4 at 00:54 ]
2楼2009-11-04 00:48:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jury1863 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见