linux 只取文件名,linux – 如何使用grep只获取没有Path的文件名

我有以下问题.

我正在做一个grep:

$command = grep -r -i –include = * .cfg’host {‘/ tomd / sites / mesh / etc /icinga / conf.d / objects

我得到以下输出:

/omd/sites/mesh/etc/icinga/conf.d/objects/testsystem/test1.cfg:define host{

/omd/sites/mesh/etc/icinga/conf.d/objects/testsystem/test2.cfg:define host{

/omd/sites/mesh/etc/icinga/conf.d/objects/testsystem/test3.cfg:define host{

...

对于所有* .cfg文件.

使用exec($command,$array)

我在数组中传递了结果.

是否可以仅获取grep-command的文件名.

我尝试过以下方法:

$Command= grep -l -H -r -i --include=*.cfg 'host{' /omd/sites/mesh/etc/icinga/conf.d/objects

但我得到了同样的结果.

使用“exec($Command,$result_array)”,我试着得到一个包含结果的数组.

提到的解决方案可以解决所有问题,但是我无法使用exec()得到一个resultarray.

谁能帮我?

解决方法:

另一个更简单的解决方案:

grep -l whatever-you-want | xargs -L 1 basename

或者你可以避免使用xargs并使用子shell,如果你没有使用古老版本的GNU coreutils:

basename -a $(grep -l whatever-you-want)

basename是获取没有路径的文件名的bash直接解决方案.您可能也对dirname感兴趣,只能获取路径.

标签:bash,linux,grep

来源: https://codeday.me/bug/20191008/1871414.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值