2013-08-21 4 views
1

stdin에 어떻게 울릴 수 있습니까?표준 입력 또는 표준 입력에 echo

예를 들어 '대체'라는 별칭이 있습니다. '대체'를 실행하면 다시 울려야합니다.

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

내 커맨드 라인에 입력하십시오. 위의 sed 명령에는 파일 대상이 없습니다. sed를 명령 행에 에코 한 후에 파일 대상을 제공합니다. 그것은 echo 당신의 청각 장애에 전체 나오지도 명령하지 않습니다하지만 효율적으로 실행됩니다 :

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

그리고 다음과 같이 실행 :

replace file 

PS

+1

표준 뭐라구? 하나의 명령의 표준 출력을 다른 명령의 표준 입력으로 보내려면 파이프를 사용하십시오 :'command1 | command2' –

+0

이 질문은 혼란 스럽습니다. 별칭을 실행하기 전에 표시하려고합니다. 파일 타겟을 지정할 수있는 함수를 작성해야하지만,'sed' 명령을 그대로 입력하면 입력이'stdin'에 입력 될 것으로 예상됩니다. – unxnut

답변

1

이 같은 alias 만들기 :

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

편집 : 명령을 실행하기 전에 반향 질문. 이 같은 스크립트 sedscript.sh 만들기 :

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

지금 때마다 당신이 실행 :

replace file 

그것은 나오지 명령을 실행하기 전에이 줄을 에코합니다

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

을 지금과 같은 당신 별명이 :

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

네, 그것은 내가 필요한 것에 효과적입니다! 하지만 이미 가져 왔으므로 sed 명령을 표준 입력으로 에코하는 법도 알고 있습니까? – Paolo

+0

수정 된 답변을 지금 확인하십시오. – anubhava

+0

이봐, 그거 꽤 멋지다. 나는 그것을 시도하고 그것을 작동합니다. 그걸 어떻게 찾았 니? – Paolo

관련 문제