如何在管道中使用猫

use*_*938 8 unix bash cut pipe cat

我有以下命令:

httpd.conf | grep AuthUserFile | cut -d" " -f4 | sed -e 's|["'\'']||g' 
Run Code Online (Sandbox Code Playgroud)

其输出是:

/etc/httpd/secure/htpasswd.training
Run Code Online (Sandbox Code Playgroud)

我做了:

httpd.conf | grep AuthUserFile | cut -d" " -f4 | sed -e 's|["'\'']||g'| cat 
Run Code Online (Sandbox Code Playgroud)

然而这刚刚返回:

/etc/httpd/secure/htpasswd.training
Run Code Online (Sandbox Code Playgroud)

我想抓取文件的内容。我该怎么做呢?

Lyn*_*ynn 8

管道传输到xargs cat将把 stdin 作为参数传递给cat,打印文件。

或者尝试:cat $( some command printing a filename ).

  • @Josh这是[命令替换](https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_03),与“cat`command”相同,如果你更熟悉的话。如果`$()`的标准输出中的命令是`/etc/httpd/secure/htpasswd.training`,那么替换的结果是`cat /etc/httpd/secure/htpasswd.training`,这是一个打印文件内容的新命令。 (3认同)