2

我想在不使用 wc 的临时文件的情况下检查某个文件的行数。我尝试使用类似这样的东西:var=${wc -l a.txt}或者wc -l a.txt | read line两者都不起作用。

4

2 回答 2

4

存储命令输出的方式var=$(command)不是var=${command}您使用的方式。

因此,这将做:

var=$(wc -l a.txt)    # returns XX a.txt

要仅存储数字,请执行

var=$(wc -l < a.txt)  # returns XX
            ^
于 2014-03-18T15:41:04.137 回答
1

谨防!

wc -l < a.txt可能看起来是正确的答案...但是如果您想在其他地方使用该数字,例如在计算或 if 块内的测试中,您的脚本可能会失败。为什么?因为wc -l给了你数字,但它前面可以有一些空格,这取决于你的wc版本(请看评论)。为了获得号码,并且只有号码,您可以尝试:

echo $(wc -l < a.txt)

我希望这有帮助!

于 2014-03-18T16:04:41.300 回答