linux - 如何使用 sed 删除 1 或 2 个点和 1 个斜线?

标签 linux bash sed

我正在创建一个脚本,它将读取一个 TXT 文件(其中有许多目录路径)并删除每个目录路径的开头。但是,每个目录路径都可以以 ./../ 开头。如何使用 SED 删除开头?

我知道我可以使用 2 个命令行,一个用于删除 ./,另一个用于删除 ../,但如何在一个命令行中删除这两种模式?

最佳答案

我建议使用 GNU sed:

echo '../foo' | sed -E 's|^\.{1,2}/||'

输出:

foo

我从 s/// 切换到 s||| 以避免转义 /

关于linux - 如何使用 sed 删除 1 或 2 个点和 1 个斜线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48735362/

相关文章:

c++ - 信号处理程序与事件处理程序

c - snprintf 手册页示例内存泄漏?

bash - 我如何将这个 bash 函数翻译成 fish shell?

linux - 使用 shell 或 diff 命令从两个 csv 文件中提取修改和添加的行

linux - sed 命令不接受 ksh 中带有 '.' 的子字符串

linux - 需要对 Linux bash 内置 exec 命令行为的解释

c# - .NET Core 1.1 控制台应用程序总是在 Ubuntu 16.04 上作为 systemd 服务退出/崩溃

bash - UNIX - 计算两个字段之间每行字符的出现次数并添加包含结果的新列

linux - sed 帮助从多个文件中删除恶意代码

linux - 如何连接两个 linux 命令的结果?