2014-07-27 3 views
0

나는 한 줄씩 파일을 읽는 스크립트를 가지고있다. 각 라인 같이 공백으로 구분 많은 열이 1A 1B 1C, 1D 2A 2B 2C 2D 3A I는 각 행의 첫 번째 컬럼에 작용하고자 3B 3C 3Dread line 이상한 출력

. 그래서 나는 스크립트가 있습니다

#!/bin/sh 
file_name=myfile.txt 

while read line 
do 
ve=`cut -d " " -f1` 
echo "This is $ve" 
done < $file_name 

을하지만 출력은 다음과 같습니다

This is 1a 
2a 
3a 

대신

This is 1a 
This is 2a 
This is 3a 

답변

1

cut의 첫 번째 인스턴스가 모든 입력을 먹는다.

#!/bin/sh 
file_name=myfile.txt 
while read line; do 
    ve=`echo "$line" | cut -d ' ' -f1` 
    echo "This is $ve" 
done < "$file_name" 
+1

더 나은이 전혀'cut'를 사용하지 마십시오 :

당신은 아마 당신이 아니라도 당신의 변수를 인용하는 것이 좋습니다

ve='echo "$line" | cut -d " " -f1' 

을 의미하는'읽는 동안 휴식을했습니다; 마. – chepner