내 데이터:
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
%s/\.xml.*/.xml/
.xml
-- 각 줄에서 뒤에 오는 텍스트를 검색하고 바꿉니다..xml
wq
--파일을 다시 디스크에 쓰고 종료합니다.
답변4
sed
텍스트 처리에 스위스 군용 칼(Swiss Army Knife)을 사용하세요 .
sed 's/\.xml.*//' File