我保存了很多用作变量的目录(例如〜保存)。当我在grep中使用这些目录时,我得到完整的文件路径(来自根目录)。
grep -r foo ~saved
产量
/a/very/long/and/complex/file/path/to/a/file/that/contains/foo.xml <foo>
这很难理解,而且基本上没有用。我想要的是以下内容或类似的简短内容。
~saved/contains/foo.xml <foo>
答案 0 :(得分:1)
grep -r foo path| sed "s:$(~shared)/:shared/:"
你可以对grep输出进行后期处理。
答案 1 :(得分:1)
在不知道~saved
究竟指的是什么的情况下,这是一个黑暗中的镜头:
grep -r foo ~saved | sed "s/$(~saved)/~saved/g"
答案 2 :(得分:0)
试试这个:
path=$(echo ~saved|sed -re 's/\//\\\//g'); grep -r foo ~saved | sed -re "s/$path/\~saved/g"
示例:
path=$(echo ~root|sed -re 's/\//\\\//g'); grep -r find ~root | sed -re "s/$path/\~root/g"
~root/.subversion/config:### examines by default to find this information ($EDITOR,
~root/test-all.sh:for i in $(find ~root -type d | grep load); do
~root/.siegerc:# requested by the server. If it finds a match, it will send