相关疑难解决方法(0)

提取与“sed”匹配的正则表达式而不打印周围的字符

致所有的“sed”医生:

你怎么能得到'sed'来提取它在一行中匹配的正则表达式?

换句话说,我只想要与正则表达式相对应的字符串,其中包含行中的所有非匹配字符都被剥离。

我尝试使用如下所示的反向引用功能

regular expression to be isolated 
         gets `inserted` 
              here     
               |
               v  
 sed -n 's/.*\( \).*/\1/p 
Run Code Online (Sandbox Code Playgroud)

这适用于某些表达式,例如

 sed -n 's/.*\(CONFIG_[a-zA-Z0-9_]*\).*/\1/p 
Run Code Online (Sandbox Code Playgroud)

它巧妙地提取了所有以 'CONFIG_ ....' 开头的宏名称(在某些 '*.h' 文件中找到)并逐行打印出来

          CONFIG_AT91_GPIO
          CONFIG_DRIVER_AT91EMAC
                   .
                   .   
          CONFIG_USB_ATMEL
          CONFIG_USB_OHCI_NEW
                   .
                 e.t.c. 
Run Code Online (Sandbox Code Playgroud)

但是上面的内容分解为类似的东西

  sed -n 's/.*\([0-9][0-9]*\).*/\1/p 
Run Code Online (Sandbox Code Playgroud)

这总是返回个位数,如

                 7
                 9
                 .
                 .  
                 6
Run Code Online (Sandbox Code Playgroud)

而不是提取连续的数字字段,例如。

              8908078
              89670890  
                 .
                 .  
                 .
               23019   
                 .
               e.t.c.  
Run Code Online (Sandbox Code Playgroud)

PS:我将非常感谢关于如何在“sed”中实现这一点的反馈。我知道如何使用“grep”和“awk”来做到这一点我想知道我对“sed”的理解(尽管有限)是否有漏洞,以及是否有办法在我
拥有的“sed”中做到这一点简直被忽视了。

sed

27
推荐指数
3
解决办法
6万
查看次数

何时使用 grep、less、awk、sed

我正在进入 Linux 的世界,在工作中我使用的grep越来越多。通过这样做,我发现有时它不足以满足我的要求。

grep几天前我正在挣扎,我的一位高级 Linux 管理员同事告诉我使用awk. 我对得到结果的速度感到震惊。

所以我的问题是你什么时候选择使用一个而不是另一个?在开始工作grep并花费大量时间之前,我可以问自己哪些问题,什么时候我可以完成awk并节省时间?

less grep sed awk

24
推荐指数
1
解决办法
8580
查看次数

我们可以使用 sed 命令打印 linux 中每行的最后一个单词吗?

假设,如果有一个由以下几行组成的文件,如果它们是

12345 567 7878 66

   er3 t45t y6y46y 


 4y6 y656y y5y

   46y6 65y7 y66uyuy

 yy46y6y

输出必须如下所示:

66

y6y46y

y5y

y66uyuyy

y46y6y

我已经尝试了命令sed 's/.* //g'文件名和其他几个sed命令,但它不起作用。

我可以知道确切的sed命令是什么吗?

sed awk text-processing

10
推荐指数
4
解决办法
3万
查看次数

标签 统计

sed ×3

awk ×2

grep ×1

less ×1

text-processing ×1