파일이 있습니다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
$