首页 > 解决方案 > 删除单行中的固定文件扩展名

问题描述

当我做

ruby -e 'print "file: #{ARGF.filename}"' test1.adoc

它打印test1.adoc,但我正在寻找的是删除扩展名,所以我只是得到test1. 如果这样做

$ touch test1.adoc
$ ruby -e 'print "file: #{ARGF.filename}.sub('.adoc','')"' test1.adoc
Traceback (most recent call last):
    1: from -e:1:in `<main>'
-e:1:in `filename': No such file or directory @ rb_sysopen - test1.adoc (Errno::ENOENT)

使用pop很容易获得一个通用的解决方案,但是沿着这条路走下去会更难......

问题

任何人都可以弄清楚如何.adoc在我的单衬里移除吗?

标签: regexruby

解决方案


用于File.basename删除扩展名和文件路径的其余部分。

puts File.basename('test1.adoc', '.*')  # test1
puts File.basename('/foo/bar/test1.adoc', '.*')  # test1

推荐阅读