我的数据:
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
Python
#!/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
-- 将文件写回磁盘并退出 ed
答案4
使用sed
,文本处理的瑞士军刀:
sed 's/\.xml.*//' File