Hi.
Zitat:
Zitat von reborg
Code:
sed 's_/\([^/]+\)$_|\1_'
|
Ich brauchte für die Verwendung von "*" anstelle von "+". Einige Versionen von
sed Möglicherweise müssen "-r", um erweiterte reguläre Ausdrücke verwenden, in denen die parens müssen auch geändert:
Code:
#!/bin/sh -
# @(#) user2 Demonstrate replacement of last specific character, sed.
sed --version | head -1
echo
echo " Original:"
echo "/home/apps/test/document" |
sed 's_/\([^/]+\)$_|\1_'
echo
echo " Modified:"
echo "/home/apps/test/document" |
sed 's_/\([^/]*\)$_|\1_'
echo
echo " Original with -r:"
echo "/home/apps/test/document" |
sed -r -e 's_/([^/]+)$_|\1_'
exit 0
Herstellung:
Code:
% ./user2
GNU sed version 4.1.2
Original:
/home/apps/test/document
Modified:
/home/apps/test|document
Original with -r:
/home/apps/test|document
Es gibt (zu) viele Versionen von
sed, So muss man wissen, welche Version man benutzt. Zum Beispiel, wenn Sie aus dem "\ (", "\)" in der 3. Beispiel, würden Sie eine Fehlermeldung, "Ungültiger Verweis \ 1", nicht sehr informativ, zumindest nicht direkt ... cheers, DRL