AWK 또는 CUT을 사용하여 각 줄의 마지막 단어를 제거하는 방법

AWK 또는 CUT을 사용하여 각 줄의 마지막 단어를 제거하는 방법
ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin/java.exe
ACRBAMIDKC124,/Program Files/Java/jre6/bin/java.exe
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin/java.exe

그리고 우리가 원하는 예상 결과

ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin
ACRBAMIDKC124,/Program Files/Java/jre6/bin
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin

답변1

$ sed 's,/[^/]*$,,' file
ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin
ACRBAMIDKC124,/Program Files/Java/jre6/bin
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin

이렇게 하면 각 줄의 마지막 문자 뒤의 모든 내용이 sed제거됩니다 ./

정규식은 /[^/]*$줄 끝 슬래시 뒤에 슬래시가 아닌 문자가 오는 것과 일치하며 교체는 이러한 문자를 제거합니다(아무 것도 대체하지 않음).

같은 것 awk:

awk '{ sub("/[^/]*$", ""); print }' file

cut잘라낼 고정 구분 기호가 없기 때문에 여기서 유틸리티를 사용하기가 어색합니다 . 당신은 분명히 할 수 있습니다취소각 행은 rev로 시작하여 추출된 다음 다시 역순으로 추출되지만 두 행 모두 동일한 작업을 더 깔끔하게 수행 할 수 있으므로 /작업이 너무 많은 것 같습니다 .sedawk

$ rev file | cut -d '/' -f 2- | rev
ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin
ACRBAMIDKC124,/Program Files/Java/jre6/bin
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin

답변2

다음 방법을 시도해 볼 수 있습니다.

awk -F\/ 'BEGIN {OFS="/"} {$NF=""} 1' input_file

또는 후행 슬래시를 피하기 위해 이것을 사용할 수 있습니다(GNU에서는 작동 awk하지만 다른 버전에서는 작동하지 않을 수 있습니다).

awk -F\/ 'BEGIN {OFS="/"} {NF-=1} 1'  input_file

답변3

주문하다

awk -F "/" 'OFS="/"{$NF="";print $0}' filename| sed "s/\/$//g"

산출

ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin
ACRBAMIDKC124,/Program Files/Java/jre6/bin
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin

답변4

Python 메소드를 사용하여 완료됨

#!/usr/bin/python
import re
y=re.compile(r'/[a-z]*\.[a-z]*$')
k=open('i.txt','r')
for i in k:
    print re.sub(y,"",i).strip()

산출

ACRBAMIDKC124,/Program Files (x86)/BigFix Enterprise/BES Client/__GTS/jre/bin
ACRBAMIDKC124,/Program Files/Java/jre6/bin
ACRBAMIDKC125,/Program Files/Tivoli/TSM/baclient/jvm80535/jre/bin

관련 정보