【问题标题】:While Condition to cat a file line by lineWhile Condition 逐行 cat 文件
【发布时间】:2012-09-04 13:57:50
【问题描述】:

我通常使用

cat filename|while read line; do
echo $line

这很好用……但我想在附加条件的情况下这样做。

cat filename|while i=2 read line; do
echo $line

现在我知道这行不通,但我该如何附加条件呢?

【问题讨论】:

  • 遍历文件的正确方法是while read line; do ...; done < filename

标签: shell loops while-loop conditional-statements ksh


【解决方案1】:

你需要像这样连接条件:

while ((i == 2)) && read line; do

【讨论】:

  • 这是在 ksh93 (Mac OS X, Mountain Lion) 下测试的
  • ((...)) 内不需要美元符号。
  • 虽然while (( i == 2 )) 在 ksh 和其他几个 shell 中是有效的语法,但它不是标准的。由于问题被标记为shell 以及 ksh,因此应该将解决方案设为标准:while test "$i" = 2 && ...
  • 这是我的最终工作版本..适用于 HP、SOL 和 RHEL。 cat $NASFILE|while [[ $NFS2 != "Completed" ]] && read line; do
【解决方案2】:

这是我的最终工作版本..适用于 HP、SOL 和 RHEL。

cat $NASFILE|while [[ $NFS2 != "Completed" ]] && read line; do

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2013-02-05
    • 2013-04-26
    • 2014-01-14
    • 2010-11-25
    相关资源
    最近更新 更多