在此文件上运行以下命令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
答案 0 :(得分:5)
使用awk
:
awk -F'/' '$1=="TESTPROGS" && $2 != "" {print $2}' /home/am/test.txt
-F/
将输入行拆分为由/
分隔的字段。 $1=="TESTPROGS"
检查第一个字段是否等于TESTPROGS
。如果这是真的并且第二个字段不为空,则打印第二个字段。
答案 1 :(得分:4)
Wuith GNU grep:
grep -Po 'TESTPROGS/\K.*' /home/am/test.txt
输出:
HRH7B76fogxwX6zEe7w8.SH m0np3yEbpplqk36wVJ1l t8ZCuJMgZO9accbjoDnp
\K
:丢弃已匹配的部分
答案 2 :(得分:3)
awk '/TESTPROGS\/.+/' file
TESTPROGS/HRH7B76fogxwX6zEe7w8.SH
TESTPROGS/m0np3yEbpplqk36wVJ1l
TESTPROGS/t8ZCuJMgZO9accbjoDnp
或
awk -F'/' '/TESTPROGS\/.+/{print $2}' filterout.awk
HRH7B76fogxwX6zEe7w8.SH
m0np3yEbpplqk36wVJ1l
t8ZCuJMgZO9accbjoDnp
答案 3 :(得分:1)
另一种方式:
for line in $(grep -r "TESTPROGS/" /home/am/test.txt); do basename "${line}"; done