bash - 仅当表达式存在时 Sed 才替换子字符串
问题描述
在 bash 脚本中,我试图删除文件名中的目录名:
documents/file.txt
direc/file5.txt
file2.txt
file3.txt
因此,我尝试先查看是否有“/”,如果有,请删除之前的所有内容:
for i in **/*.scss *.scss; do
echo "$i" | sed -n '^/.*\// s/^.*\///p'
done
但它不适用于当前目录中的文件,它给了我一个空白字符串。
我得到:
file.txt
file5.txt
解决方案
推荐阅读
- blazor-server-side - 使用 Blazor 应用程序连接到 Owin SignalR Hub
- arrays - 需要 Google 表格数组处理方面的指导
- c++ - 在 C++ 编译时收集我的类的所有方法调用的签名
- typescript - Typescript readonly到处切换?(功能参数)
- java - java sqlQuery字符串构建器中的循环模型getter参数
- java - java chrono 年份之间的单位差异
- android - 将 android:text 属性添加到任何 xml 布局文件中的任何元素时,Android Studio 会关闭
- javascript - 此代码正在工作,但在工作后为什么此代码显示错误
- python - 如何为不同的常数值运行相同的积分?
- java - 如何在oracle的TIMESTAMPTZ中存储java的ZonedDateTime?