2014-12-30 7 views
0

텍스트 파일의 특정 열 (예 : 열 10)에 값을 써야합니다.쉘의 특정 열에서 쓰는 방법은 무엇입니까?

touch test.txt 
echo "232" >> test.txt   # I want 232 to start from 10th column of text file 

이동 방법은?

+1

-printf 단지 redirect/append 출력하는 "* 열 *" ? –

+0

echo 명령에 대해 구체적으로 말하면 -e 옵션을 사용할 수 있습니다. -e 옵션을 사용하면 다양한 백 슬래시 방식을 사용하여 출력 형식을 지정할 수 있습니다. –

+0

줄의 시작에서 10 번째 필드를 말하면 탭을 사용하고 싶지 않습니다. –

답변

0
for x in $(seq 10) 
do 
    echo -n ' ' 
done 

echo "232" >> test.txt 
1

printf은 오프셋을 제공하는 또 다른 방법입니다. 오프셋 (field width)의 양을 format specifier의 인수로 취할 수 있다는 이점이 있습니다. printf 명령 format specifier 그냥 사용을 말한다

#!/bin/sh 

col="${1:-10}"       # column offset (default: 10) 
stuff="${2:-232}"      # variable to write at offset 

printf "%*s%s\n" "$col" "" "$stuff"  # write $stuff at $col offset 

exit 0 

offset을 만들려면 : 다음은 예를 들어 두 번째 인수 (10/232 당신의 기본값이 사용)로 첫 번째 인수the data to write at that offsetcolumn offset를 취할 것 minimum field width$col 인 경우 empty-string ("")을 쓰고 그 후에 데이터 ($stuff)를 쓰고 newline을 쓰십시오. prncol.sh로 저장 스크립트로 :

출력 : 물론

$ bash prncol.sh 
      232 

$ bash prncol.sh 5 501 
    501 

$ bash prncol.sh 15 anything 
       anything 

test.txt에 출력 쓰기 무엇 test.txt

관련 문제