%20%E5%9C%A8%20dat%20%E6%96%87%E4%BB%B6%E4%B8%8A%E7%9A%84%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E4%B8%AD%E5%90%8C%E6%97%B6%E8%BF%9B%E8%A1%8C%E8%AE%A1%E6%95%B0%E5%92%8C%20grep.png)
我想要进行行计数并将数字放入 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
变体可能会在行数前后添加空格以获得所需的对齐方式。