gpt4 book ai didi

bash - 如何匹配行尾/文本的模式

转载 作者:行者123 更新时间:2023-11-29 08:55:55 26 4
gpt4 key购买 nike

我对 bash 很陌生。因此,如果这是一个非常基本的问题,请原谅我。

我正在尝试将文件扩展名“.gzip”替换为“.gz”。

例如:

testfile.xml.gzip => testfile.xml.gz

有人写了这样的脚本:

GZIP=`echo ${FILE} | grep .gz`

.
.
.

FILE=`echo ${FILE} | sed 's/.gz//g'`

第一行错误地匹配了 testfile.xml.gzip 文件。 grep .gz 匹配文件名中介于两者之间的文本,而我只需要它匹配文件名末尾的文本。谁能帮我解决这个问题?简而言之,我需要知道与行/文本结尾的模式匹配的表达式。

最佳答案

使用$匹配行尾:

FILE=`echo ${FILE} | sed 's/.gz$//g'`

无论如何,此命令的作用是从文件名中删除结尾的 .gz 扩展名,根据您的问题,这不是您要查找的内容。为此,dnsmkl 的答案是使用 sed 的方法。

请注意,由于环境变量中已经有 FILE,因此您可以使用 bash string manipulation如下:

$ FILE=textfile.xml.gzip
$ echo ${FILE/%gzip/zip}
textfile.xml.zip

关于bash - 如何匹配行尾/文本的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com