#!/usr/bin/awk -f # # Copyright (C) 2010 Red Hat, Inc. All rights reserved. # # This file is part of LVM2. # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions # of the GNU General Public License v.2. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # relpath.awk: Script is used to calculate relative path # between two real absolute paths. # # echo /a/b/c/d /a/b/e/f | relpath.awk # -> ../../e/f/ { length_from = split($1, from, "/"); length_to = split($2, to, "/") ; l = 1; while (l <= length_from && l <= length_to && from[l] == to[l]) l++; for (i = l; i <= length_from && length(from[i]); i++) { if (i > l) p = sprintf("%s/", p); p = sprintf("%s..", p); } for (i = l; i <= length_to && length(to[i]); i++) { if (length(p) > 0) p = sprintf("%s/", p); p = sprintf("%s%s", p, to[i]); } if (length(p)) p = sprintf("%s/", p); print p }