UNIX中的行计数通过从另一个文件读取文件名

时间:2015-02-11 04:02:03

标签: unix wc

我有一个文件FILE1.TXT。它只包含一个文件名FILE2.TXT

如何仅使用FILE2.TXT查找FILE1.TXT的记录数/行数?我已经尝试过的是:

cat FILE1.TXT | wc -l

但上述命令不起作用。


实际上,我需要显示输出如下:

File name is FILE2.TXT and the count is 2.

我已经尝试过(在脚本文件中使用以下语句):

echo "File name is "`cat FILE1.TXT`" and the count is " `wc -l < $(cat FILE1.TXT)`

但是上面的命令不起作用并且给出了错误

syntax error at line 1: `(' unexpected

2 个答案:

答案 0 :(得分:2)

对于符合POSIX标准的shell:

wc -l $(cat FILE1.txt)

或者,与Bash:

wc -l $(<FILE1.txt)

这些都会报告文件名(但如果FILE1.txt中有多个文件名,则会起作用)。如果您不希望报告文件名(但文件中只有一个名称),您可以使用:

wc -l < $(cat FILE1.txt)
wc -l < $(<FILE1.txt)

答案 1 :(得分:-1)

file=$(cat FILE1.txt | grep -o "FILE2.txt")
cat "$file" | wc -l