首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从文本文件中的每一行中删除当前路径部分

从文本文件中的每一行中删除当前路径部分
EN

Stack Overflow用户
提问于 2016-07-29 20:47:25
回答 2查看 86关注 0票数 1

我有一个bash脚本,它生成文本文件。但是我想从每一行中删除当前路径部分。我试着运行“削减-d'/‘-补足-s -f1-4”命令。但我想要一些有活力的方法来做。有人能帮我一下吗?谢谢!

示例文本文件:

代码语言:javascript
复制
/local/name1/test/dir/file1.c
/local/name1/test/dir/subdir/file2.h
/local/name1/test/dir2/file3.txt

当前路径:

代码语言:javascript
复制
/local/name1/test/

预期结果:

代码语言:javascript
复制
dir/file1.c
dir/subdir/file2.h
dir2/file3.txt
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-29 20:52:12

使用sed可以做到:

代码语言:javascript
复制
sed 's~^/local/name1/test/~~' file

dir/file1.c
dir/subdir/file2.h
dir2/file3.txt

如果当前路径保存在变量p中,则使用:

代码语言:javascript
复制
sed "s~^$p~~" file
票数 1
EN

Stack Overflow用户

发布于 2016-07-29 21:00:09

您可以使用PWDbash参数展开来获得动态行为:

代码语言:javascript
复制
"${var#$PWD/}"

首先将文件路径保存为var。在这里,$PWD将展开到当前的工作目录,参数扩展将在$PWD之后获得文件名的部分。

示例:

代码语言:javascript
复制
$ var=/home/foobar/spam/foo/bar.c
$ echo "${var#$PWD/}"
foo/bar.c
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38667225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档