游戏开发网站开发,拍摄宣传片,开发区二手房房价最新信息,制作ppt的软件免费请阅读【嵌入式开发学习必备专栏 】 文章目录 awk 处理文件名#xff0c;去除后缀只保留文件名 awk 处理文件名#xff0c;去除后缀只保留文件名
在 shell 中#xff0c; 可以使用 awk 来处理文件名#xff0c;去除其后缀。下面是一个示例命令#xff0c;它会将带有后缀的…请阅读【嵌入式开发学习必备专栏 】 文章目录 awk 处理文件名去除后缀只保留文件名 awk 处理文件名去除后缀只保留文件名
在 shell 中 可以使用 awk 来处理文件名去除其后缀。下面是一个示例命令它会将带有后缀的文件名作为输入并输出没有后缀的文件名
filenameexample.txt
basename$(echo $filename | awk -F. {OFS.; $NF; sub(/\.$/, , $0); print})
echo $basename这个命令片段做了以下几件事情
-F. 设置了输入字段的分隔符为点号.这是文件后缀的通常分隔符。OFS. 设置了输出字段的分隔符也为点号。$NF 将最后一个字段即文件的后缀设置为空字符串。sub(/\.$/, , $0) 使用正则表达式匹配行末尾的点号并将其删除。print 输出处理后的行即没有后缀的文件名。 这将输出 example去掉了 .txt 后缀。 另一种更简单的方法是使用 rev 和 cut 命令组合这可能更容易理解而且不需要 awk
filenameexample.txt
basename$(echo $filename | rev | cut -d. -f2- | rev)
echo $basename这个命令的工作原理是
使用 rev 命令反转文件名字符串。使用 cut 命令以点号为分隔符选取反转后的第二个字段到最后即除去了第一个字段也就是原始字符串的后缀部分。再次使用 rev 命令反转结果回到正常的顺序。 例如对于文件名 example.txt这也会输出 example。 请注意如果文件名中有多个点号以上方法会去掉最后一个点号及其之后的部分。如果文件名中有版本号或多个后缀可能需要其他方法来处理。
awk -F \ {print$2} auto_generate.h | awk -F. {OFS.; $NF; sub(/\.$/, , $0); print}