linux - 删除部分绝对路径字符串

标签 linux perl sed

在 Linux 中,我试图删除文本文件中的部分路径。完整路径为:

\server/glb/data/dir/var/loc2/log/123456.log

我试图简单地从字符串中删除 glb/data/来给我:

\server/dir/var/loc2/log/123456.log

我一直尝试使用 sed 和 perl 但没有成功。 这将被插入到正在运行的脚本中,以创建链接并将其插入到 Oracle 表中。

测试文件中还有其他链接,因此我认为 cut 命令不起作用。

有什么想法吗?

最佳答案

这里有一些应该与 sed 一起使用的 bash:

file_name='\server/glb/data/dir/var/loc2/log/123456.log'
echo $file_name | sed -e 's,glb/data/,,'

这将打印剥离的路径,将其保存在变量中

new_name=$(echo $file_name | sed -e 's,glb/data/,,')

类似地,在 Perl 中你也可以这样做

my $file_name='\server/glb/data/dir/var/loc2/log/123456.log';
$file_name =~ s,glb/data/,,;

关于linux - 删除部分绝对路径字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30079625/

相关文章:

linux - 本地 webapp 和 websocket 的 Nginx 设置

linux - 使用 bash 脚本在现有 screen session 中通过 Enter 键传递命令

C - Linux - 自定义内核模块来迭代进程的子进程会破坏内核日志和计算机

perl - 无法使用 Perl 中的 Time::localtime 函数打印系统本地时间

bash - 使用 sed/awk 插入文本中线

mysql - 如果行很长,sed 无法进行替换

linux - Bash:将字符串添加到文件末尾而不换行

perl - 使用 perl 应用补丁文件?

linux - 我怎样才能在后台运行东西并在 Perl 中重定向它们的输出?

linux - 当变量再次具有特殊字符时,如何在 sed 命令中使用变量?