파일이 있어요abc.log
abc01 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fo027146
abc02 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fb027146
abc03 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fc027146
각 줄의 마지막 /(슬래시)를 찾은 다음 다음 2자를 선택하고 전체 줄을 인쇄해야 합니다.
내 출력은
abc01 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fo
abc02 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fb
abc03 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fc
답변1
그리고 grep
:
$ grep -o '.*/..' abc.log
abc01 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fo
abc02 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fb
abc03 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fc
그러면 마지막 문자와 다음 두 문자까지의 /
모든 내용 이 인쇄됩니다.
답변2
while 읽기 루프와 PE 사용
while read -r line; do
line0=${line##*/}
printf '%s\n' "$line/${line0:0:2}"
done < abc.log
파일 크기가 크면 입력이 느려질 수 있습니다.