过滤掉文本删除目录,只留下文件
这个文件运行以下命令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