我有一个bash脚本,它生成文本文件。但是我想从每一行中删除当前路径部分。我试着运行“削减-d'/‘-补足-s -f1-4”命令。但我想要一些有活力的方法来做。有人能帮我一下吗?谢谢!
示例文本文件:
/local/name1/test/dir/file1.c
/local/name1/test/dir/subdir/file2.h
/local/name1/test/dir2/file3.txt当前路径:
/local/name1/test/预期结果:
dir/file1.c
dir/subdir/file2.h
dir2/file3.txt发布于 2016-07-29 20:52:12
使用sed可以做到:
sed 's~^/local/name1/test/~~' file
dir/file1.c
dir/subdir/file2.h
dir2/file3.txt如果当前路径保存在变量p中,则使用:
sed "s~^$p~~" file发布于 2016-07-29 21:00:09
您可以使用PWD和bash参数展开来获得动态行为:
"${var#$PWD/}"首先将文件路径保存为var。在这里,$PWD将展开到当前的工作目录,参数扩展将在$PWD之后获得文件名的部分。
示例:
$ var=/home/foobar/spam/foo/bar.c
$ echo "${var#$PWD/}"
foo/bar.chttps://stackoverflow.com/questions/38667225
复制相似问题