debian 重复执行sh_如何不用Shell的循环命令重复执行同一个命令N次?

你的位置:

问答吧

-> Shell

-> 问题详情

如何不用Shell的循环命令重复执行同一个命令N次?

如何直接使用命令模式而不写Shell脚本执行同一个命令N次?

如何去掉一个文件最后三行进行显示?(要求:不知道总行数)

作者: Safirst

发布时间: 2005-08-17

引用:

作者: Safirst

如何直接使用命令模式而不写Shell脚本执行同一个命令N次?

如何去掉一个文件最后三行进行显示?(要求:不知道总行数)1. 可以用递归法。写个小脚本也不防事。

2.

代码:

awk -v v=$(cat file|awk 'END{print NR}') '{if(NR<=('$v'-3))print}' file方法之一。

作者: yongjian

发布时间: 2005-08-17

第一个方法能将代码具体写出来吗?

第二个方法还是变相地得到了文件的总行数的---awk 'END{print NR}'

我希望能像tail -n 3 file 这样不知道总行数的办法,或者能求个集合减法。。。

作者: Safirst

发布时间: 2005-08-17

引用:

作者: Safirst

第一个方法能将代码具体写出来吗?

第二个方法还是变相地得到了文件的总行数的---awk 'END{print NR}'

我希望能像tail -n 3 file 这样不知道总行数的办法,或者能求个集合减法。。。第一个其实很简单,比如:

代码:

#!/bin/bash

a=0

loop (){

if [[ $a -lt 10 ]]; then

echo $a

((a=$a+1))

loop

fi

}

loop第二个嘛,要想想。

作者: yongjian

发布时间: 2005-08-17

第二怎么可能办到?

逻辑上我觉得就不能办到,你要显示除最后三行的内容,那必然遍历了这些内容,也就是说肯定会知道这些内容有多少行,然后再加上最后三行,也是变相地知道了总行数。

作者: kiron

发布时间: 2005-08-17

引用:

作者: Safirst

第二个方法还是变相地得到了文件的总行数的---awk 'END{print NR}'

我希望能像tail -n 3 file 这样不知道总行数的办法,或者能求个集合减法。。。似乎 tail 也是用类似计算总行数的方法完成的吧,有些东西确实是不能省略的。这就好像面对一个无序的数组,要想查出其中某一个数据的位置,除了一个一个的比较以外,没有其他的方法。

作者: herberteuler

发布时间: 2005-08-17

你知道$0吗?

作者: Yuri

发布时间: 2005-08-17

是的,同意krion兄和herberteuler兄意见。我想tail的源码实现中也必是将文件行数计算出来后得出的最后xx行。不然,“最后”从何说起呢?

作者: yongjian

发布时间: 2005-08-17

哦,那么我们就借助于tail已经求过了的结果完成任务行吗?

有谁知道$代表最后一行,如何才能用 $-3 表示倒数第三行行号?

$这个符号是不是可以运算的?

我想直接得到倒数第三行的行号,即使是借助于tail命令它已经帮我们求得总行数。

作者: Safirst

发布时间: 2005-08-17

引用:

作者: genv

你知道$0吗?$0在这里表示什么?文件吗?

作者: Safirst

发布时间: 2005-08-17

第一个的执行命令应该写在哪个位置?

作者: joewen

发布时间: 2009-04-08

我口凹,这坟墓挖得...

作者: Jockey

发布时间: 2009-04-08

引用:

作者: Safirst

如何直接使用命令模式而不写Shell脚本执行同一个命令N次?

如何去掉一个文件最后三行进行显示?(要求:不知道总行数)

我给个半搞笑半严肃的方法,看看能否满足lz的需求:

tac FILENAME | sed -n '4,$p' | tac

作者: skycleaner

发布时间: 2009-04-24

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值