Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux shell流重定向以直接运行命令列表_Linux_Bash_Shell_Command Line_Io Redirection - Fatal编程技术网

linux shell流重定向以直接运行命令列表

linux shell流重定向以直接运行命令列表,linux,bash,shell,command-line,io-redirection,Linux,Bash,Shell,Command Line,Io Redirection,我有一个svn项目。。。要获取未添加文件的列表(在我的示例中为数百个),请执行以下操作: 输出 ? somefile.txt ? somefile1.txt ? somefile2.txt svn add somefile.txt svn add somefile1.txt svn add somefile2.txt 我最近被介绍给sed。。。现在我有了一个要运行的命令列表 svn status | grep "^?"|sed "s/^?/svn add/" 输出 ? somefile.t

我有一个svn项目。。。要获取未添加文件的列表(在我的示例中为数百个),请执行以下操作:

输出

? somefile.txt
? somefile1.txt
? somefile2.txt
svn add somefile.txt
svn add somefile1.txt
svn add somefile2.txt
我最近被介绍给sed。。。现在我有了一个要运行的命令列表

svn status | grep "^?"|sed "s/^?/svn add/"
输出

? somefile.txt
? somefile1.txt
? somefile2.txt
svn add somefile.txt
svn add somefile1.txt
svn add somefile2.txt
我意识到我可以通过管道把它归档

svn status | grep "^?"|sed "s/^?/svn add/" >out.sh && sh out.sh && rm out.sh
但我希望避免写入临时文件。有没有一种方法可以通过管道将其传输到以下命令:

svn status | grep "^?"|sed "s/^?/svn add/" |some_command_that_runs_each_line

那么
bash
/
sh

svn status | grep "^?"|sed "s/^?/svn add/" | bash
那么:

for i in `svn status | grep "^?"|sed "s/^?/svn add/"`
do
    $i
done

您要查找的是
xargs
命令:

svn status | grep "^?" | sed "s/^..//" | xargs svn add
您还可以使用替换:

svn add `svn status | grep "^?"` | cut -c 3-`

您的答案现在看起来非常明显,但我不知道bash/sh可以接受流重定向。谢谢。需要删除
,所以在grep之后的管道中添加
cut-d”“-f2-