过滤掉文本删除目录,只留下文件

这个文件运行以下命令grep -r "TESTPROGS/" /home/am/test.txt:过滤掉文本删除目录,只留下文件

AMPROGS/ 

AMPROGS/TqaWhkhiCx8ymy8lIR2p.SH

AMPROGS/iOryQxYtZwhkl0x7CcmW.SH

AMPROGS/a14KbHWjbnWehzkmDWuv.SH

TESTPROGS/

TESTPROGS/HRH7B76fogxwX6zEe7w8.SH

TESTPROGS/m0np3yEbpplqk36wVJ1l

TESTPROGS/t8ZCuJMgZO9accbjoDnp

返回以下结果:

TESTPROGS/ 

TESTPROGS/HRH7B76fogxwX6zEe7w8.SH

TESTPROGS/m0np3yEbpplqk36wVJ1l

TESTPROGS/t8ZCuJMgZO9accbjoDnp

我怎么会现在去掉TESTPROGS /完全,所以我有这样的:

HRH7B76fogxwX6zEe7w8.SH 

m0np3yEbpplqk36wVJ1l

t8ZCuJMgZO9accbjoDnp

回答:

Wuith GNU的grep:

grep -Po 'TESTPROGS/\K.*' /home/am/test.txt 

输出:

HRH7B76fogxwX6zEe7w8.SH

m0np3yEbpplqk36wVJ1l

t8ZCuJMgZO9accbjoDnp

\K:丢弃已经匹配部分

回答:

使用awk

awk -F'/' '$1=="TESTPROGS" && $2 != "" {print $2}' /home/am/test.txt 

-F/将输入行分割为由/分隔的字段。 $1=="TESTPROGS"检查第一个字段是否等于TESTPROGS。如果这是真的,第二个字段不是空的,它将打印第二个字段。

回答:

的另一种方法:

for line in $(grep -r "TESTPROGS/" /home/am/test.txt); do basename "${line}"; done 

回答:

awk '/TESTPROGS\/.+/' file 

TESTPROGS/HRH7B76fogxwX6zEe7w8.SH

TESTPROGS/m0np3yEbpplqk36wVJ1l

TESTPROGS/t8ZCuJMgZO9accbjoDnp

awk -F'/' '/TESTPROGS\/.+/{print $2}' filterout.awk 

HRH7B76fogxwX6zEe7w8.SH

m0np3yEbpplqk36wVJ1l

t8ZCuJMgZO9accbjoDnp

以上是 过滤掉文本删除目录,只留下文件 的全部内容, 来源链接: utcz.com/qa/263099.html

回到顶部