shell,通过管道将参数列表逐个传递到命令

shell,通过管道将参数列表逐个传递到命令,shell,awk,pipe,command-line-arguments,Shell,Awk,Pipe,Command Line Arguments,我有一个列表参数需要一个接一个地传递给另一个命令,因为该命令一次只接受一个参数,我可以使用任何shell管道吗?先谢谢你 比如说, $ ls -al | awk '{print $9}' 该命令将返回一个文件夹名称列表,然后我需要将这些名称作为参数发送给另一个命令,该命令每次执行时只接受on命令 我建议使用查找: find . -mindepth 1 -maxdepth 1 -type d -exec your_command {} \; 这将调用当前目录中除和之外的任何文件夹的您的_命令。

我有一个列表参数需要一个接一个地传递给另一个命令,因为该命令一次只接受一个参数,我可以使用任何shell管道吗?先谢谢你

比如说,

$ ls -al | awk '{print $9}'

该命令将返回一个文件夹名称列表,然后我需要将这些名称作为参数发送给另一个命令,该命令每次执行时只接受on命令

我建议使用
查找

find . -mindepth 1 -maxdepth 1 -type d -exec your_command {} \;

这将调用当前目录中除
之外的任何文件夹的
您的_命令。

我不理解
ls-al | awk…
类比。包含此代码示例的意义是什么

如果参数列表以空格分隔,则默认情况下,使用诸如
xargs
之类的实用程序命令会将每个参数逐个提供给命令。您可以更改此默认行为,但似乎不需要这样做。您可以按如下方式使用
xargs

ls -al | awk '{print $9}' | xargs cat
…到
cat
通过
ls-al
命令输出的每个文件的内容。这有用吗


但应注意的是,
ls
是一个陶瓷命令,而不是管道命令。换句话说,最好的做法是不依赖命令管道的
ls
输出。然而,像
find
这样的实用程序是一个管道命令,最好作为管道的一部分使用。

这可能是相关的:尝试在一个命令行中执行,知道吗?应该避免解析
ls
的输出。你能提供更多的细节吗?你有没有看过
xargs
?你可能想/需要根据你的第一个命令的输出格式将
-l1
添加到你的
xargs
命令中。当然,
cat.[.]***
效果更好。特别是,Awk将使用任何包含空格的文件名,而普通通配符扩展不会使用空格。对于
xargs-L 1 cat
,请给出正确的输出,因为列表是以行分隔的。真有趣,我以前从未听说过“瓷器”和“管道”命令。但至少在网上找到了一些信息。:)这只选择了目录,这似乎是诅咒什么OP要求。不,它只是似乎诅咒OP的未完成的命令。他说:
。。。该命令将返回文件夹名称列表
。这让我觉得
您的_命令
很可能只接受文件夹。