2013-08-21 195 views
1

我怎么能呼应标准输入?回波标准输入或标准输入

例如,我有所谓的“替换”的别名。当我运行'替换'它应该回声

sed 's/~/~\\n/g' 

进入我的命令行。注意上面的sed命令没有文件目标。在将sed回显到命令行后,我会提供文件目标。

+1

标准放什么?于一个命令的标准输出发送到另一个的标准输入,使用一个管:'命令1 | command2' –

+0

这个问题很混乱。你想在执行它之前显示别名。你应该写一个函数来允许你指定文件目标,但是如果你按原样键入'sed'命令,它会希望输入在'stdin'上输入。 – unxnut

回答

1

创建alias这样的:

alias replace="sed 's/~/~\\n/g' " 

然后像这样运行它:

replace file 

PS:这不会echo您的tty全sed命令,但它会有效地运行:

sed 's/~/~\\n/g' file 

编辑:在执行前回显命令的问题。创建一个脚本sedscript.sh这样的:

set -x 
# do some sanity check on $1 
sed 's/~/~\\n/g' "$1" 

现在有你的别名是这样的:

chmod +x sedscript.sh 
alias replace="/path/to/sedscript.sh " 

现在每次运行:

replace file 

它将呼应sed命令执行之前,这条线:

++ sed 's/~/~\\n/g' file 
+0

是的,它为我所需要的!但由于它已经提出来了,你也知道如何呼应sed命令到标准输入? – Paolo

+0

现在查看编辑答案。 – anubhava

+0

嘿,这很酷。我试了一下,它的工作原理。你是如何设法找到的? – Paolo