awk / sed脚本删除文本

时间:2010-05-21 06:23:21

标签: text scripting sed makefile awk

我目前需要一种以编程方式从我正在处理的Makefile中删除一些文本的方法。现在的问题是(无论出于何种原因)使用-l<full_path_to_library>/<library_name>生成的链接命令生成makefile时,应使用-l<library_name>生成它们。所以我需要的是一个脚本来查找所有出现的-l/,然后移除并包括下一个/

我正在处理的例子

  

-l /家庭/用户/路径/到/升压/ LIB / boost_filesystem

我需要它

  

-lboost_filesystem

可以想象这是一个停止间隙测量,直到我解决了真正的问题(在发电方面),但与此同时,如果这可行的话对我来说将是一个很大的帮助,我对我的awk不太好和sed。

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

sed -i 's|-l[^ ]*/\([^/ ]*\)|-l\1|g' Makefile

答案 1 :(得分:1)

你去吧

echo "-l/home/user/path/to/boost/lib/boost_filesystem" | awk -F"/" '{ print $1  $NF  } '