首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在BASH和AWK的句子中分割出特定的单词?

在BASH和AWK的句子中分割出特定的单词?
EN

Stack Overflow用户
提问于 2014-11-24 08:59:06
回答 1查看 88关注 0票数 0

我下面有这样一个句子

代码语言:javascript
复制
/home/kernel/drivers/hal
/home/kernel/drivers/hal
/home/kernel/drivers/sdk
/home/kernel/drivers/sdk/systems/linux/kernel/common
/home/kernel/drivers/sdk/src
/home/kernel/drivers/sdk/build/linux/tar/soc/
src/soc/libsoc.c
/home/kernel/drivers/sdk/build/linux/src/soc/phy/
mt/soc/phy/x1.c
mt/soc/phy/x2.c
mt/soc/phy/x3.c
mt/soc/phy/x4.c
mt/soc/phy/x5.c
mt/soc/phy/x6.c
mt/soc/phy/x7.c 

我的目标是像下面这样

代码语言:javascript
复制
/home/kernel/drivers/sdk/build/src/soc/libsoc.c
/home/kernel/drivers/sdk/build/mt/soc/phy/x1.c
 /home/kernel/drivers/sdk/build/mt/soc/phy/x2.c
 /home/kernel/drivers/sdk/build/mt/soc/phy/x3.c
 /home/kernel/drivers/sdk/build/mt/soc/phy/x4.c
/home/kernel/drivers/sdk/build/mt/soc/phy/x5.c
/home/kernel/drivers/sdk/build/mt/soc/phy/x6.c
/home/kernel/drivers/sdk/build/mt/soc/phy/x7.c

把目标存档。

  1. 我在网上读过很多文章,包括stackoverflow...but,但都没能读到。
  2. 巴什 我试着使用bash内置表达式 ${参数%word}${参数%%word}删除匹配后缀模式。 我得到了这个结果 /home/内核/sdk/
  3. 在awk 我不能百分之百肯定这段代码对我的意图是有效的。 awk / '{ for(i=1;i<=NF;i++) { roomi=$i };i=1;while(i<=NF) { if(roomi == "sdk") { j=i;i=1;while(i<=j) { print $i i++ } j=i;i=1;while(i<=j) { print $i i++ }} ;getline;}‘ 结果是 家庭内核驱动程序..。
EN

回答 1

Stack Overflow用户

发布于 2014-11-24 09:17:40

简单的字符串替换就可以了:

代码语言:javascript
复制
#!/bin/bash

path=/home/test/kernel/drivers/middle/sdk/build/linux/src/soc/phy/test.c

ffname="${path##*/}"               # filename component

echo "newpath: ${path//\/build*/}/${ffname}"

输出:

代码语言:javascript
复制
newpath: /home/test/kernel/drivers/middle/sdk/test.c
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27101042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档