2013-07-24 3 views
1

awk을 사용하여 파일의 구분 기호가 무엇인지 확인하려면 ksh 스크립트를 사용하고 있습니다. 이 구분 기호는 항상 첫 줄의 4 위치에 있음을 알고 있습니다. 내가 가진 문제는 특정 파일의 구분 기호로 사용되는 문자가 *이므로 *을 스크립트에 반환하는 대신 스크립트가 파일 목록을 반환한다는 것입니다. 파일ksh 스크립트를 사용하여 부분 문자열 가져 오기

텍스트 : 여기 내 스크립트와 함께 내 파일의 샘플 텍스트 여기

XXX*XX*  *XX*XXXXXXX....... 

내 스크립트가 어떻게 생겼는지의 나의 종류 (나는 내 ​​앞에있는 스크립트가 없지만 당신은)이 JIST를 얻을 :

delimiter=$(awk '{substr $0, 4, 1}' file.txt) 
echo ${delimiter} # lists files in directory..file.txt file1.txt file2.txt instead of * which is the desired result 

가 사전에 감사합니다,
앤서니

답변

0

쉘은의 내용을 해석됩니다변수. 이 동작을 방지하기 위해 그것을 인용해야합니다

echo "${delimiter}" 

그것은 *

+0

난 그냥 오늘 아침을 파악하고 응답을 .... 내 게시물을 편집 덕분에 가고 있었다! – user1015196

1

Birei이 문제에 대한 적합한 인쇄됩니다. 그러나 AWK 표현은 첫 번째 줄에만 관심이있는 것 같지 않습니다. 당신은 그것을 대체 할 수

'NR==1 {print substr($0, 4, 1)}' 

그런 다음 간단한 작업을 수행 할 수 있습니다

echo "$delimiter" 
관련 문제