마지막 패턴 문자를 검색하여 찾고 다음 문자를 인쇄합니다.

마지막 패턴 문자를 검색하여 찾고 다음 문자를 인쇄합니다.

파일이 있습니다C1 로그그중에는 다음이 포함됩니다.

/u01/app/oracle/dirdat/ab00cmf
/u01/app/oracle/dirprm/fm00lsk

각 줄의 마지막 부분을 찾아 /다음 두 문자를 인쇄해야 합니다.

예를 들어 내 출력은 다음과 같아야 합니다.

ab
fm

답변1

grep이번 지원 으로폴리 메라 제 연쇠 반응:

grep -oP '.*/\K.{0,2}' infile
  • \K어설션은 이전에 일치하는 항목을 무시하는 데 사용됩니다.
  • .{0,2}마지막 문자 뒤의 0개 또는 최대 2개의 문자와 일치합니다./

다음 입력의 경우:

/u01/app/oracle/dirprm/fm00lsk
/foo/x/ab00cmf
/foo/bar/x
/foo/somthing/

출력은 다음과 같습니다:

fm
ab
x

답변2

사용 awk:

awk -F/ '{print substr($NF,1,2)}' C1.log

이는 /필드 구분 기호로 사용되며 마지막 필드의 문자 1부터 시작하는 두 문자를 인쇄합니다.

답변3

sed그리디 매칭과 역참조를 사용하세요 :

$ sed -E 's/(^.*\/)(..)(.*$)/\2/' C1.log
ab
fm
$

관련 정보