我有一个文件的2个子节点,每个条目都在一行中。从一个文件中删除子串
AAA_PRD = (DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = mmmm01.dimpotiso.org)(PORT = 1521)))(CONNECT_DATA =(SID = ORCL)))
BBB_PRD = (DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = irkosdap01.nonprod.digrestsiso.org)(PORT = 1626))(CONNECT_DATA =(SID = BBBDFS)))^
HOST项不总是以相同的列长度开始。我想从主机的条目去掉主机的尾部支架,或者更好的是只有主机条目。
我想获得的结果
mmmm01.dimpotiso.org
irkosdap01.nonprod.digrestsiso.org
感谢
我部分能从下面的tnsnames.ora文件中获取信息 -
cat tnsnamesMaster_March12_2013.ora | grep 'HOST' | cut -f2 -d 'HOST=' | cut -f2 -d'=' | cut -f1 -d ')'
嗨凯文。感谢回复。我无法在grep上使用-o选项。我改用grep -e'HOST = [^)] *'tnsnamesMaster_March12_2013.ora。裁剪似乎给了我其他语法问题,我无法得到我想要的东西。我也尝试了> grep -ep'(?<= HOST =)[^)] +'tnsnamesMaster_March12_2013.ora,但是即使在HOST的右括号之后,我也会得到所有的字符。这是AIX并使用bash shell。 – user2402291
你有什么系统没有'-o'?如果给'cut'('-c 6-')添加一个空格,那就是posix,所以应该在任何合理的系统上工作。 – Kevin
非常感谢凯文! sed命令像魅力一样工作。 – user2402291