SED提取的最后一个和其余的单词

时间:2011-08-04 15:16:31

标签: sed extract

log=/u00/app/oracle/product/10.2.0.4/network/admin/listener.log

我想像这样提取

listener.log
/u00/app/oracle/product/10.2.0.4/network/admin/

有人帮我提取了listener.log。但我对另一个感到震惊。

#echo $log | sed 's!.*/!!'
listener.log

3 个答案:

答案 0 :(得分:1)

s/log=\(.*\/\)\([a-zA-Z0-9\.]*\)/\2 \1/

首先,选择部件,然后根据需要打印出来。

这是如何运作的:

  • 选择贪婪的一切
  • 回溯直到你有一个斜线来结束它;把那部分放在第一场比赛中
  • 选择之后的任何内容,将其放入第二场比赛
  • 然后,首先打印第二场比赛,然后打第一场比赛。

答案 1 :(得分:0)

log=/u00/app/oracle/product/10.2.0.4/network/admin/listener.log
echo "$(dirname "$log")"   # ==> /u00/app/oracle/product/10.2.0.4/network/admin
echo "$(basename "$log")"  # ==> listener.log

另外

echo "${log%/*}"   # ==> /u00/app/oracle/product/10.2.0.4/network/admin
echo "${log##*/}"  # ==> listener.log

答案 2 :(得分:0)

#echo $log | sed 's|[^/]*$||'

(“删除一串非斜杠字符,后跟行尾。”