【问题标题】:Shell Scripting print next lineShell 脚本打印下一行
【发布时间】:2013-04-27 18:22:06
【问题描述】:

我的脚本正在使用 while 循环逐行读取 xyz.txt 文件,如果条件匹配,我想打印下一行。例如,如果 [ "$count" -gt "5" ];那么

请多多指教。

谢谢,

【问题讨论】:

    标签: shell


    【解决方案1】:

    awk 或 sed 是更好的选择 awk 示例:

    awk 'FNR>5'  inputfile
    

    在 shell 中也一样

    cnt=0
    while read rec
    do
       cnt=$(( $cnt + 1))
       [ $cnt -gt 5 ] && echo "$rec"
    done < inputfile
    

    【讨论】:

    • 感谢您的回复,但上述解决方案会在条件匹配后打印下一行吗?
    • 从文件中读取大于 5 行的条件 - 是的。这意味着第 6 行将是您看到的第一行。并且将出现 #6 - 文件末尾的所有行。
    • 感谢 Jim,但 5 只是一个示例,因为该值也是一个变量。如果 [ $cnt -gt 5 ];然后 cnt=$(( $cnt + 1)) echo $line done
    • 我不明白你的意思? 5真的是像var这样的变量吗?然后 [ $cnt -gt $var ] && echo "$rec"。为什么要在达到变量值后增加变量?那将停止打印。我认为您正在尝试做一些与您的示例完全不同的事情。
    • 哦,伟大的吉姆它工作了.... :) 非常感谢您的及时响应和宝贵的支持.....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多