shell 捕获文件名并将其替换为特定字符的常规表达式

3phpmpom  于 2023-01-05  发布在  Shell
关注(0)|答案(1)|浏览(114)

我有个具体问题需要帮助。
我在一个Flutter项目中有一个相对路径,我需要获得文件名(没有. dart扩展名),并在文件名前添加两个星号。
我需要创建一个shell脚本在我的PC中执行,如下所示:
EJ.

  • 转换此
prueba/de/una/ruta/main.dart
  • 变成这样
prueba/de/una/ruta/**.dart

-——-
实际上,我正在尝试获取文件名并将其替换为以下代码,但没有效果

echo "test/holas.dart" | sed "/(?<=\/)[^\/]+(?=\.dart)/g";

实际产量:

test/holas.dart

预期产出:

holas

如果有人知道一些东西,以获得预期的输出或如何建立整个脚本文件,我感谢帮助

nwwlzxa7

nwwlzxa71#

使用sed

$ echo 'prueba/de/una/ruta/main.dart' | sed -E 's~(.*/)[^.]*~\1**~'
prueba/de/una/ruta/**.dart
$ echo "test/holas.dart" | sed -E 's~.*/|\..*~~g'
holas

相关问题