我对 bash 脚本有点陌生,无法找到我要问的问题的答案,如果可能的话。
我有一个文本文件,它是通过使用 grep 搜索包含“名称”的文件的目录创建的,并输出以下内容,假设该文件名为 PathOutput.txt
/mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/4c3483af-b41a-4979-98b7-6f6a4f147670/4c3483af-b41a-4979-98b7-6f6a4f147670.ovf
/mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/5b5538a5-423f-4eaf-9678-d377a6706c58/5b5538a5-423f-4eaf-9678-d377a6706c58.ovf
/mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/0e2d1451-45cc-456e-846d-d174515a60dd/0e2d1451-45cc-456e-846d-d174515a60dd.ovf
/mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/daaf622e-e035-4c1b-a6d7-8ee209c4ded6/daaf622e-e035-4c1b-a6d7-8ee209c4ded6.ovf
/mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/48f52ab9-64df-4b1e-9c35-c024ae2a64c4/48f52ab9-64df-4b1e-9c35-c024ae2a64c4.ovf
现在,如果可能的话,我想做的是使用命令循环遍历文件,使用变量引入文本文件中的每一行。但是我无法找到一种方法来在每一行中再次运行命令。通过我所有的尝试,我确实得到了一个结果,它会针对第一行运行一次,但这是 grep 的输出被输送到另一个命令的时候。
目前在 bash 脚本中,我只是将路径提取到 PathOutput.txt,cat 以显示路径,然后将我想要的路径复制到 read -p 命令以创建一个变量以针对命令运行。它现在工作正常,只需要每次为每个路径运行脚本。如果我可以让命令循环遍历每一行,我可以将结果输出到一个 txt 文件。
这可能吗?
最佳答案
你可以使用xargs
:
$ xargs -n1 echo "arg:" < file
arg: /mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/4c3483af-b41a-4979-98b7-6f6a4f147670/4c3483af-b41a-4979-98b7-6f6a4f147670.ovf
arg: /mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/5b5538a5-423f-4eaf-9678-d377a6706c58/5b5538a5-423f-4eaf-9678-d377a6706c58.ovf
arg: /mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/0e2d1451-45cc-456e-846d-d174515a60dd/0e2d1451-45cc-456e-846d-d174515a60dd.ovf
arg: /mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/daaf622e-e035-4c1b-a6d7-8ee209c4ded6/daaf622e-e035-4c1b-a6d7-8ee209c4ded6.ovf
arg: /mnt/volnfs3rvdata/4007dc45-477a-45b2-9c28-43bc5bbb4f9f/master/vms/48f52ab9-64df-4b1e-9c35-c024ae2a64c4/48f52ab9-64df-4b1e-9c35-c024ae2a64c4.ovf
只需将 echo "arg:"
替换为您实际想要使用的命令即可。如果您想一次传递所有文件,请删除 -n1
选项。
关于Bash - 使用文本文件中的行运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14955508/