【问题标题】:BASH while line numbers in file is smaller than xBASH,而文件中的行号小于 x
【发布时间】:2011-09-26 14:10:10
【问题描述】:

我想创建一个循环来读取一些文件 在这种情况下,我希望它在 wc 输出小于 5 时停止 文件“file”包含将要处理的文件的名称

for i in `cat file`
do

echo printing $i ...
a=`wc $i`
while [ $a -gt 5 ]
do
echo 3
sleep 10
done

done

这部分不工作

a=`wc $i`
while [ $a -gt 5 ]

【问题讨论】:

  • 请更清楚地解释您要做什么。
  • “不工作”是什么意思?您已经创建了一个无限循环,因为 $a 没有在 while 语句中重新计算。也许你想要if

标签: linux bash wc


【解决方案1】:

您将要使用wc -l 来获取文件的行数。此外,您还需要减少 $a,以免出现无限循环。

【讨论】:

    【解决方案2】:
    a=$(wc -l $i|awk '{print $1}')
    

    试试这个?

    【讨论】:

    • 或者只是a=$(wc -l < $i)——这样,文件名就不会被打印出来了
    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    相关资源
    最近更新 更多