역방향 계산 시 5자 뒤에 공백 삽입

역방향 계산 시 5자 뒤에 공백 삽입

아래와 같이 많은 항목이 포함된 파일이 있습니다.

US6DWMD01#DW01DDATAPURGE(060009/28)
US6DWMD01#DW01DDATAPURGE(060009/29)
US6DWMD01#DW01DDATAPURGE(060009/30)
US6DWMD01#DW01DDATAPURGE(060011/01)
US6DWMD01#DW11WPURESUN(060011/01)
US6TPA01#PPAORD__LDBASE(000009/26)
US6TPA01#PPAORD__LGBOX(000009/26)
US6TPA01#PPATDD__DEDMGT(060009/25)
US6TPA01#PPATDD__FLNET(060009/25)
US6TPA01#PPATDD__LORTBLS(060009/25)
US6TPA01#PPATDD__PPATTBLS(060009/25)
US6TPA01#PPATDD__P8020RP(060011/01)

아래와 같이 역방향으로 계산할 때 5자 뒤에 공백을 삽입하려면 cut/sed/awk 명령을 사용하고 싶습니다.

US6TPA01#PPATDD__DEDMGT(0600 09/25)
US6TPA01#PPATDD__FLNET(0600 09/25)
US6TPA01#PPATDD__LORTBLS(0600 09/25)
US6TPA01#PPATDD__PPATTBLS(0600 09/25)
US6TPA01#PPATDD__P8020RP(0600 11/01)

답변1

실제로 6개의 문자가 있습니다: 숫자 2개, 슬래시 1개, 숫자 2개, 괄호 1개:

sed 's/.\{6\}$/ &/' < input > output

$줄 끝과 일치합니다 .

답변2

정규식에서는 $줄의 끝과 일치합니다. 따라서 이를 사용하여 마지막 6개 문자(귀하의 질문에 5가 언급되어 있지만 표시하지 않는 후행 공백이 없으면 6을 표시함) 문자를 일치시키고 그 앞에 공백을 추가할 수 있습니다. 예를 들어:

  • 설정:

    sed 's/......$/ &/' file
    

    또는

    sed 's/.\{6\}$/ &/' file
    
  • GNU 또는 FreeBSD sed:

    sed -E 's/.{6}$/ &/' file
    
  • perl -pe 's/.{6}$/ $&/' file
    
  • awk '{sub(/.{6}$/," &");print}' file
    

관련 정보