使用sed编辑包含未知段的路径

时间:2014-09-23 14:12:26

标签: bash sed

我在需要编辑的文件中有一个路径,如下所示。 “最新”之后和“/”之前的任何内容都需要包含在比赛中。

/home/test/files/newestaaabbb/the_file.txt
/home/test/files/newest1/the_file.txt
/home/test/files/newest4_8/the_file.txt

都需要成为:

/home/test/files/oldest/the_file.txt

2 个答案:

答案 0 :(得分:2)

您可以将sed与此正则表达式newest[^/]一起用作搜索模式:

sed 's~newest[^/]*~oldest~' file
/home/test/files/oldest/the_file.txt
/home/test/files/oldest/the_file.txt
/home/test/files/oldest/the_file.txt

PS:对于内联编辑的文件使用:

sed -i.bak 's~newest[^/]*~oldest~' file

答案 1 :(得分:0)

管道穿过awk的另一种方式

awk 'BEGIN{FS="/";OFS="/"}; {if ($(NF-1) ~ "^newest") $(NF-1)="oldest";print}'