2013-04-11 1 views
0

훨씬 쉬운 방법이 있으므로 확신 할 수 있습니다. 내 .tsv 형식의AWK가 csh 대신 sh를 호출하는 경우

sort -nrk 7 my_list.tsv | tail -n 1 | awk '{print("setenv INPUT_DIR `pwd`/"$1)}' 

첫 번째 항목은 내가 CSH의 환경 변수로 설정하기 위해 노력하고있어 파일 이름 (분류)이다. 나는 길을 끌어 당기고 싶다. 나는이 일을하지만 ...

sh: setenv: command not found 

비록 내가 csh에있어. csh/tcsh를 사용하기 위해 awk 시스템 기능을 사용할 수 있습니까?

+0

당신이 게시 스크립트는() 명령이 너무 귀하의 질문에 그 스크립트에 대해 또는 시스템에 대한 인 AWK 시스템을 함께 할 수 없다()? –

답변

0

'경로를 끌어 당기려면'. ??

는 뜻

 echo "fileName" | awk '{printf("setenv '`pwd`'/%s\n", $1)}' 

출력

내가 대체 한
 setenv INPUT_DIR /home/shellter/filename 

당신의 그 핵심 문제 될 것 같지 않기 때문에 sort ... | tail ...

또한 작은 따옴표로 처리 할 역 따옴표 대체가 금지됩니다. 작은 따옴표를 끄고 cmd-sub 값을 얻은 다음 작은 따옴표를 다시 켜십시오.

이 내용이 의미가 아니라면 질문을 편집하고 위와 같이 sort ... tail ...을 간단한 에코 "문자열"로 바꾸고 예상되는 결과를 포함 시키십시오. 또한 현재 얻고있는 결과를 포함하는 데 도움이됩니다.

헤드 라인의 질문에 답하기 위해 awk는 $ SHELL 환경 변수에 저장된 값을 거의 확실히 사용하고 있습니다. 또는 다른 변수가있을 수 있으므로 set | grep /bin/shsetenv | grep /bin/sh을 입력하면 /bin/sh에 대한 참조가 설정되는 위치를 참조하십시오. 그런 다음 어떻게 관리할지 결정하십시오.

코드를 실행할 때 쉘이 실행되었다는 표시가 없습니다. 내가 얻을

setenv INPUT_DIR `pwd`/file 

하지만 나는 ksh에서 코드를 실행 중이다. 나는 테스트를 사용할 csh가 없다. 그러나 주어진 경우에는 중요하지 않습니다.

IHTH