Hej.
Citat:
Oprindeligt Indsendt af reborg
Code:
sed 's_/\([^/]+\)$_|\1_'
|
Jeg havde brug for at bruge "*" i stedet for "+". Nogle versioner af
sed kan få brug for "-r" for at bruge udvidede regulære udtryk, hvori parens også nødt til at modificerede:
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
Producerer:
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
Der er (for) mange versioner af
sed, Så man skal vide, hvilken version man bruger. For eksempel, hvis du var til at forlade "\ (", "\)" i 3. eksempel, ville du få en fejlmeddelelse, "ugyldig reference \ 1", ikke meget informativt, i det mindste ikke direkte ... cheers, DRL