2013-08-10 3 views
-2

제 입력 파일에 숫자에 대한 일련의 명령이 예를 들어 들어 있습니다."tr"을 사용하여 숫자의 숫자를 바꾸는 방법

13287 
13288 
13289 

모든 파일에서 다음과 같은 출력을 원합니다.

13281 
13282 
13283 

스크립트 파일에 처음 네 자리 숫자를 전달할 때 스크립트 파일에 저장된 다음 명령을 사용하고 있습니다.

#!/bin/bash 
cat $1_final.txt | tr "$17" "$11" > $1.tmp 

원하는 출력 대신 다음 출력이 표시됩니다. 나는이 잘못을하고있는 중이 야 어디 디렉토리에있는 파일이 1328_final.txt

13221 

을하기 때문에 인수가 다른 1328는 파일을 얻을 수 없습니다 통과 된 다시 확인했다?

+1

을 그래서 기본적으로 각 행에서 6을 뺄까요? – user000001

+0

아니요, 혼동을해서 죄송합니다. 파일에이 번호가 있습니다. 여기에 표시된대로 연속적으로 배치되지 않았습니다. –

답변

1

tr에 대한 첫 번째 인수는 는 전 세계적으로 2 번째 인수에서 해당 문자로 대체됩니다 문자이 다른 문자의 세트입니다. 각 라인에서 6 뺍

은 여러 가지 방법으로 수행 할 수 있습니다

while read num; do echo $((num-6)); done < file 
awk '{print $1 - 6}' file 
sed 's/$/ - 6/' file | bc 
sed 's/$/ 6 - p/' file | dc