0

我是 Linux 新手,我必须删除文件名中的特定数字字符串。

这是我的文件名:

AB.TEXT.OMN.BUFFER.INSERT.123.20130315.CSV 
AB.TEXT.OMN.BUFFER.APPEND.5345667.20130315.CSV

我需要输出为:

AB.TEXT.OMN.BUFFER.INSERT.20130315.CSV   
AB.TEXT.OMN.BUFFER.APPEND.20130315.CSV

我想删除该位置的123and which may5345667或其他数字,所以我想删除 . (第 5 次出现)和 . (第 6 次出现)在文件名中。

4

2 回答 2

1

cut可以这样做:

pax> echo 'AB.TEXT.OMN.BUFFER.INSERT.123.20130315.CSV' | cut -d. -f1-5,7-
AB.TEXT.OMN.BUFFER.INSERT.20130315.CSV

pax> echo 'AB.TEXT.OMN.BUFFER.APPEND.5345667.20130315.CSV' | cut -d. -f1-5,7-
AB.TEXT.OMN.BUFFER.APPEND.20130315.CSV

-d.只需将分隔符设置为,并.-f1-5,7-您提供除第六个以外的所有字段。

于 2013-03-15T03:35:49.263 回答
0

输入.txt

AB.TEXT.OMN.BUFFER.INSERT.123.20130315.CSV 
AB.TEXT.OMN.BUFFER.APPEND.5345667.20130315.CSV

命令

awk -F "." '{ $6=""; print $0 }' Input.txt | sed -e 's/ /\./g' -e 's/\.\./\./g'

输出

AB.TEXT.OMN.BUFFER.INSERT.20130315.CSV   
AB.TEXT.OMN.BUFFER.APPEND.20130315.CSV
于 2013-03-15T06:36:49.887 回答