我是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
我想要移除123
以及可能5345667
或其他数字的位置,因此我想删除之间的字符串。 (第5次出现)和。 (第6次出现)在文件名中。
答案 0 :(得分: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-
会为您提供除第六个以外的所有字段。
答案 1 :(得分: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