首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

awk 轮换-有什么语法

2013-03-16 
awk 替换--有什么语法我有这个需求,需要截取一个字符串(表示一段路径)的一段,比如下面的这个字符串:/dir1/

awk 替换--有什么语法
我有这个需求,需要截取一个字符串(表示一段路径)的一段,比如下面的这个字符串:
/dir1/dir2/../dirN/good/better/best/dir_last1/dir_last2/...

我希望截取的结果是
/dir1/dir2/../dirN

其中N未知,也就是说我的源串是不固定的。但是其中一定有一个good/better/best子串,后面的还有不固定的路径。

本人之前没怎么用这个awk,研究了一下,实在搞不定。
我尝试写出来了一个半成品:

cat file | awk '{sub(/\/good\/better\/best\/dir_last1\/dir_last2\/dir_last3/,""); print}'

这个能将固定子串及后面的固定路径一起去掉(如果能匹配)
问题是,固定子串后面的子串是未知,是可能变化的,所以这个不管用。
这个awk实在不熟。高手给指点一下吧,多谢了。 awk?字符串?linux
[解决办法]

echo /dir1/dir2/../dirN/good/better/best/dir_last1/dir_last2/... 
[解决办法]
 awk 'gsub(/\/good\/better\/best\/.*/,"")'

[解决办法]
楼上正解!!!

热点排行