![AWK - 如何获取文件第一列指向的文件内容](https://linux22.com/image/6201/AWK%20-%20%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E7%AC%AC%E4%B8%80%E5%88%97%E6%8C%87%E5%90%91%E7%9A%84%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9.png)
我有一个文件 f1.txt ,其内容如下
file1 file2
file3 file4
file1 的内容如下
student1 10
student2 20
现在我想从 f1.txt 中获取第一列并使用 awk 打印出 file1 的内容。我尝试过awk '{print $1}' f1.txt | cat $1
,但没用。有什么简单的方法可以使用 来获取 file1 的内容awk
吗?
答案1
如果您没有在 awk 中对数据进行任何处理,并且仅使用 awk 来选择数据,那么这适合 xargs,例如,
awk '{ print $1; }' | xargs cat
与 xargs 将为 cat 收集多个参数相比,这有一个优势system
,因此效率更高一些。
答案2
awk
您可以在其中调用函数system
来运行外部命令:
awk '{system("cat "$1)}' f1.txt
或者,如果您只想打印 的内容file1
而不是file3
:
awk 'NR==1{system("cat "$1)}' f1.txt