2014-09-04 5 views
-3

특정 문장의 특정 문자를 자르는 방법은 무엇입니까?UNIX- 특정 문장의 특정 문자를 자르는 방법

입력 문자열 :

7,717 http-16502-2 INFO com.****.mxxdctm.cscxscxs**- new name:/opt/docu/fs1_1/fs_cache/09vvadadaca.mghyyysss.excel12book 
7,717 http-16502-2 INFO com.****.mxxdctm.cscxscxs**- new name:/opt/docu/fs1_1/fs_cache/09vvadadaca.bcdvsxsas.pdf 
7,717 http-16502-2 INFO com.****.mxxdctm.cscxscxs**- new name:/opt/docu/fs1_1/fs_cache/09vvadadaca.nmncdvsxsas.pdf 

내가 위의 샘플 문장의 파일 확장자 앞에있는 문자열을 잘라합니다.

bcdvsxsas 
mghyyysss 
nmncdvsxsas 

답변

3
awk -F. '{print $(NF-1)}' inFile.txt 
+0

감사 당신은 내가 다른 캐릭터에게 –

+1

@senthilkumar를 절단 사용할 수 위의 commands.so을 설명해주십시오 unix.could 새로운 lot..I의 m : 출력 아래

내가 찾고 있어요 이 솔루션에서는 필드 분리 자로'.'을 사용하여 필드를 분할합니다. 'NF'는 필드 수를 저장하는 awk 내장 변수입니다. '$ NF'는 마지막 필드의 값을 가지고 있으므로'$ (NF-1)'을 출력함으로써 모든 행의 다섯 번째 필드가 필요하다는 하드 코딩없이 모든 행의 두 번째 마지막 필드를 출력합니다. 그것은'cut -d \와 비슷한 것입니다. -f5 inFile.txt'. 데이터가 일관성이 있다면 하드 코딩은 완벽하게 좋습니다. 그러나 데이터가 일관성이 없으면 줄 끝에서 뒤로 추적하고 마지막 두 번째 필드를 선택하는 것이 더 똑똑한 방법입니다. –

+1

'NF {print $ (NF-1)}'문 앞에'NF'를 추가하여 공백으로 만들면 awk이 중단됩니다. –

관련 문제