如何在单引号中删除单引号?

时间:2019-02-13 22:53:58

标签: regex bash sed

我需要使用Sed在单个引用的电子邮件地址中删除单个引用。

我尝试与

匹配
    ,'.*(?<=@)

它总是在正则表达式中包含''def''

例如

    aabc,123,'def','me.o'le@abc.com',123,abc

    aabc,123,'def','me.ole@abc.com',123,abc

如何在不触及其余单引号的情况下进行替换?

谢谢

1 个答案:

答案 0 :(得分:3)

您尚未指定有关输入字符串格式约束的足够信息。但是,以下$~$TRN_FILE_DT$~$|$~$TRN_BANK_STATE_ID$~$|$~$ACCT_NUM_FULL$~$|$~$TRN_TRANSACTION_CD$~$|$~$TRN_TRANSACTION_DT$~$|$~$TRN_TRANSACTION_AMT$~$|$~$TRN_BAT_NUM$~$|$~$TRN_SEQ_NUM$~$|$~$TRN_LOCUSORTYPE$~$|$~$TRN_CITYST$~$|$~$TRN_PURPOSE$~$|$~$TRN_ATM_LOC_CD$~$|$~$TRN_AMT_LOC_ON_US$~$|$~$TRN_AMT_REMOTE_BR$~$|$~$TRN_ATM_GL_RC$~$|$~$TRN_POST_SEQ$~$|$~$TRN_POSTING_PRIORITY$~$ $~$2019-01-01 00:00:00$~$|$~$001$~$|$~$0xBFACD988EAF6ABE515C16CE33C10F0860B33C83D$~$|$~$0129$~$|$~$2018-12-31 00:00:00$~$|$~$1425.00$~$|$~$5912 $~$|$~$13312$~$|$~$TO CHECKING$~$|$~$$~$|$~$TO CHECKING$~$|$~$$~$|$~$$~$|$~$$~$|$~$$~$|$~$00001$~$|$~$35$~$ $~$2019-01-01 00:00:00$~$|$~$001$~$|$~$0xDFC9ACE6A089C648E74524847A7273763475655D$~$|$~$0170$~$|$~$2018-12-31 00:00:00$~$|$~$3503.71$~$|$~$7200 $~$|$~$90542$~$|$~$Morgan Stanley$~$|$~$$~$|$~$ACH CREDIT$~$|$~$$~$|$~$$~$|$~$$~$|$~$$~$|$~$00001$~$|$~$20$~$ $~$2019-01-01 00:00:00$~$|$~$001$~$|$~$0xDFC9ACE6A089C648E74524847A7273763475655D$~$|$~$0136$~$|$~$2018-12-31 00:00:00$~$|$~$34.00$~$|$~$8888 $~$|$~$51279$~$|$~$Village Nails & Sp$~$|$~$CRANSTON RI$~$|$~$DBT PURCHASE$~$|$~$7230$~$|$~$$~$|$~$$~$|$~$$~$|$~$00001$~$|$~$35$~$ $~$2019-01-01 00:00:00$~$|$~$001$~$|$~$0xDFC9ACE6A089C648E74524847A7273763475655D$~$|$~$0136$~$|$~$2018-12-31 00:00:00$~$|$~$75.19$~$|$~$8888 $~$|$~$66089$~$|$~$P.J.'S PUB$~$|$~$NARRAGANSETT RI$~$|$~$DBT PURCHASE$~$|$~$5812$~$|$~$$~$|$~$$~$|$~$$~$|$~$00003$~$|$~$35$~$ $~$2019-01-01 00:00:00$~$|$~$001$~$|$~$0xDFC9ACE6A089C648E74524847A7273763475655D$~$|$~$0136$~$|$~$2018-12-31 00:00:00$~$|$~$9.34$~$|$~$8888 $~$|$~$66093$~$|$~$Amazon.com*M26TD1R$~$|$~$Amzn.com/billWA$~$|$~$DBT PURCHASE$~$|$~$5942$~$|$~$$~$|$~$$~$|$~$$~$|$~$00004$~$|$~$35$~$ $~$2019-01-01 00:00:00$~$|$~$001$~$|$~$0xDFC9ACE6A089C648E74524847A7273763475655D$~$|$~$0136$~$|$~$2018-12-31 00:00:00$~$|$~$5.92$~$|$~$8888 $~$|$~$66091$~$|$~$AMZN Mktp US*M28O5$~$|$~$Amzn.com/billWA$~$|$~$DBT PURCHASE$~$|$~$5942$~$|$~$$~$|$~$$~$|$~$$~$|$~$00007$~$|$~$35$~$ 命令可与您提供的示例字符串以及许多类似的字符串一起使用。 (准确地说:它可以与仅删除一个字符的任何行一起使用,该字符可以出现在电子邮件地址名称部分的任何位置,并且用单引号分隔的电子邮件地址本身既不是第一个也不是第一个最后一个用逗号分隔的字段。如果有两个以上要更正的电子邮件地址,它将在第一个上操作。)

它应该给您一个想法。关键是在sed,'之间定位您的比赛。

',