使用awk和/或sed命令扩充路径

使用awk和/或sed命令扩充路径,awk,sed,Awk,Sed,我是一个awk和sed新手。我在一个文件中有以下字符串 mount --bind /vsepr_app_repo/fedora/20/plone/4.3.4/Plone/buildout-cache/downloads /buildout-cache/downloads 我想从中产生以下输出: mount --bind /vsepr_app_repo/fedora/20/plone/4.3.4/Plone/buildout-cache/downloads /Plone/buildout-cac

我是一个awk和sed新手。我在一个文件中有以下字符串

mount --bind /vsepr_app_repo/fedora/20/plone/4.3.4/Plone/buildout-cache/downloads /buildout-cache/downloads
我想从中产生以下输出:

mount --bind /vsepr_app_repo/fedora/20/plone/4.3.4/Plone/buildout-cache/downloads /Plone/buildout-cache/downloads
如何在shell脚本中使用sed和awk命令实现这一点? 我想在文件的许多行上重复相同的操作。
任何建议都会对我有很大帮助。

在不了解更多细节的情况下,下面的awk命令就是一个开始

$ cat data
mount --bind /vsepr_app_repo/fedora/20/plone/4.3.4/Plone/buildout-cache/downloads /buildout-cache/downloads
$ awk '/^mount.*buildout-cache.downloads/ { $NF = "/Plone" $NF; print }' < data
mount --bind /vsepr_app_repo/fedora/20/plone/4.3.4/Plone/buildout-cache/downloads /Plone/buildout-cache/downloads
$cat数据
mount--bind/vsepr\u app\u repo/fedora/20/plone/4.3.4/plone/buildout-cache/downloads/buildout-cache/downloads
$awk'/^mount.*buildout-cache.downloads/{$NF=“/Plone”$NF;print}'
对于以
mount
开头并以
buildout cache/downloads
结尾的任何行,它将在行上的最后一个标记前面加上
/Plone


/^mount.*buildout cache.downloads/
部分使块应用于与正则表达式匹配的行。命令块使用引用行上最后一个字段的
$NF
,在其前面加上
“/Plone”
,然后打印出整行。

作为路径中的通用文件夹名称

sed 's#\(/[^/]\{1,\}\)\(/.\{1,\}\)\([[:space:]]\{1,\}\)\2$#\1\2\3\1\2#' YourFile

基于第一条路径上的最后一条路径作为模式

删除开始处的所有
符号。请更明确地说明您想要什么。是不是在这个地方加了一个单词
Plone
?在一个文件的每一行上,或者仅仅在这个完全相同的地方。。。这将改变很多事情。