2013-08-21 66 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