当我这样做的时候
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
吗?
最佳答案
使用File.basename
删除扩展名和文件路径的其余部分。
puts File.basename('test1.adoc', '.*') # test1
puts File.basename('/foo/bar/test1.adoc', '.*') # test1
关于regex - 删除一行中的固定文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64636922/