특정 단어 뒤의 n개 문자 삭제

특정 단어 뒤의 n개 문자 삭제

내 데이터:

7468656.xml-87-
7468656.xml-88-
7468656.xml-89-
7468656.xml-90-
7468656.xml-91-
7468656.xml-92-
7468656.xml-93-
7468656.xml:94:
7468656.xml-115-
7468656.xml-116-
7468656.xml-117-
7468656.xml-118-
7468656.xml-119-
7468656.xml-120-
7468656.xml-121-
7468656.xml:122:

원하는 출력: ".xml" 뒤의 모든(포함) 문자를 제거합니다.

7468656
7468656
7468656
7468656
7468656
7468656
7468656
7468656
7468656
7468656
7468656
7468656
7468656
7468656
7468656
7468656

시도해 볼 명령:

awk '{gsub(/[.xml ]/,"",$1)}9' File

파일에서 ".xml"만 제거합니다.

답변1

이 시도,

  awk -F '[.]xml' '{print $1}' file

아니면 당신의 방식대로...

 awk '{gsub(/\.xml.*/,"",$1)}9' file

답변2

다음 명령을 사용해보십시오. 훌륭하게 작동합니다.

명령 1:

awk '{gsub(/\.xml.*/,"",$0);print $0}' filename

명령 2:

awk -F ".xml" '{print $1}' filename

명령 3

awk '{print substr($0,1,6)}' filename

명령 4

sed "s/\.xml.*//g" filename

파이썬

#!/usr/bin/python
k=open('filename','r')
for i in k:
    print i.split('.xml')[0]

답변3

스크립트 가능한 편집기를 사용할 수도 있습니다 ed!

다음은 ed주어진 내용을 자동으로 편집하도록 요청하는 개행으로 구분된 두 개의 명령을 인쇄합니다 filename.

printf '%s\n' '%s/\.xml.*/.xml/' 'wq' | ed -s filename
  1. %s/\.xml.*/.xml/.xml-- 각 줄에서 뒤에 오는 텍스트를 검색하고 바꿉니다..xml
  2. wq--파일을 다시 디스크에 쓰고 종료합니다.

답변4

sed텍스트 처리에 스위스 군용 칼(Swiss Army Knife)을 사용하세요 .

sed 's/\.xml.*//' File

관련 정보