将目录字符串替换为"&引用;使用sed

将目录字符串替换为"&引用;使用sed,sed,Sed,如何在sed中执行这些操作 #input #output file.txt "nothing" dir1/ ../ dir1/file.txt ../ dir1/dir2/ ../../ dir1/dir2/file.txt ../../ 比如说#输入被放置到$var1 sed "do something" <<< $var1 echo $v

如何在sed中执行这些操作

#input                 #output
file.txt              "nothing" 
dir1/                 ../
dir1/file.txt         ../
dir1/dir2/            ../../
dir1/dir2/file.txt    ../../
比如说#输入被放置到$var1

sed "do something" <<< $var1
echo $var1

sed“做点什么”你可以试试这个GNU-sed

sed "s#dir[0-9]\+/*#\.\./#g; s#file\.txt##g"  

您对dir1/dir2(不带尾随斜杠)的测试是否正确?sed如何知道dir2是文件还是目录?否则,您可以使用:

echo "dir1/dir2/file.txt" | sed s#[^/]*/#../#g | sed 's#[^/]*$##'
你到底想干什么?sed可能不是正确的工具。如果这是在shell脚本中,可能需要
pushd
popd