wc -l 文件到变量

wc -l 文件到变量

给定一个文件路径,我想找出有多少行并将它们存储到一个变量中。例如:

/three_little_pigs.csv

straw
wood
bricks

在文件中,我想3存储数字(或字符串)。尝试了以下命令:

export P="three_little_pigs.csv"
NUM_LINES=(wc -l < "${P}")

但我总是收到这个错误:

bash: house: line 12: syntax error near unexpected token `<'

答案1

要运行 bash 中的子 shell $(...)。并且您不需要重定向输入,只需命名输入文件即可。所以省略<

NUM_LINES=$(wc -l "$P")

Output:

3 three_little_pigs.csv

要摆脱文件名,一种可能性(还有许多其他可能性)是使用 awk:

NUM_LINES=$(wc -l "$P" | awk '{print $1}')

编辑1:

好的,使用重定向 ( <) 将完全省略文件名...抱歉;)

NUM_LINES=$(wc -l < "$P")

相关内容