line(records) 在 dat 文件上的一个命令中同时进行计数和 grep

line(records) 在 dat 文件上的一个命令中同时进行计数和 grep

我想要进行行计数并将数字放入 shell 脚本中的变量中。例如。

 wc -l filename.dat

给出221 filename.dat 我想将 grep '221' 放入一个变量中,稍后我可以使用它。这可以在一条语句中完成吗?我不想将 的输出复制wc -l到另一个文件中,然后再执行 grep。

答案1

您可以将文件名传递给 STDINwc以仅获取行数:

wc -l <filename.dat

要将其保存为变量:

var="$(wc -l <filename.dat)"

例子 :

$ wc -l foo.txt 
12 foo.txt

$ wc -l <foo.txt 
12

$ var="$(wc -l <foo.txt)"

$ echo "$var"
12

请注意,作为斯特凡·查泽拉斯 (Stéphane Chazelas) 指出,某些wc变体可能会在行数前后添加空格以获得所需的对齐方式。

相关内容