给定一个文件路径,我想找出有多少行并将它们存储到一个变量中。例如:
/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")