删除特定单词后的 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

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
  1. %s/\.xml.*/.xml/.xml-- 在每一行上,搜索并替换后面跟有任何内容的文本.xml
  2. wq-- 将文件写回磁盘并退出 ed

答案4

使用sed,文本处理的瑞士军刀:

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

相关内容