想知道如何将文本文件中的行数输出到屏幕,然后将其存储在变量中。我有一个名为 stats.txt 的文件,当我运行wc -l stats.txt
它时输出8 stats.txt
我试着做x = wc -l stats.txt
认为它只会存储数字,其余的只是为了视觉,但它不起作用:(
谢谢您的帮助
想知道如何将文本文件中的行数输出到屏幕,然后将其存储在变量中。我有一个名为 stats.txt 的文件,当我运行wc -l stats.txt
它时输出8 stats.txt
我试着做x = wc -l stats.txt
认为它只会存储数字,其余的只是为了视觉,但它不起作用:(
谢谢您的帮助
执行此操作有两种 POSIX 标准语法:
x=`cat stats.txt | wc -l`
或者
x=$(cat stats.txt | wc -l)
他们都运行程序并将脚本中的调用替换为命令的标准输出,在这种情况下将其分配给$x
变量。但是,请注意,两个都修剪结束换行符(这实际上是您想要的,但有时可能很危险,当您期望换行时)。
此外,第二种情况可以很容易地嵌套(例如:)$(cat $(ls | head -n 1) | wc -l)
。你也可以用第一种情况来做,但它更复杂:
`cat \`ls | head -n 1\` | wc -l`
还有报价问题。您可以将这些表达式包含在双引号内,但使用反引号,您必须在命令内继续引用,而使用括号允许您“开始一个新的引用”组:
"`echo \"My string\"`"
"$(echo "My string")"
希望这会有所帮助=)
你可以试试:
x=`cat stats.txt | wc -l`
或(来自另一个.anon.coward 的评论):
x=`wc -l < stats.txt`