首页 > 解决方案 > 在 bash/sed 中修剪输入

问题描述

我的输入看起来像:

22/05/2016TAKEMEAWAY    nsorte dat TAKEMEAWAYd0 "https://bears.com"
22/05/2016TAKEMEAWAY nsorte dat TAKEMEAWAYd241  "https://bears.com"
22/05/2017TAKEMEAWAY nsorte her the TAKEMEAWAYd447020 "https://bears.com"
22/05/2017TAKEMEAWAY   nsorte TAKEMEAWAYd115155 "https://bears.com"
22/05/2017TAKEMEAWAY nsorte TAKEMEAWAYd6792 "https://bears.com"
22/05/2017TAKEMEAWAY   nsorte TAKEMEAWAYd625385 "https://bears.com"
22/05/201TAKEMEAWAYTAKEMEAWAY 20 vBul Dogs (  Cinema TAKEMEAWAY)4154850 "https://bulldogs.com/ my cats"
22/05/2017TAKEMEAWAYTAKEMEAWAY 20 vBul Dogs    (Cinema TAKEMEAWAY)4154880 "https://cats.com/my dogs"
22/05/2017TAKEMEAWAYTAKEMEAWAY   20 vBul Dogs (Cinema TAKEMEAWAY)4154830 "https://bears.com"
22/05/2017TAKEMEAWAYTAKEMEAWAY 20 vBul    Dogs (Cinema TAKEMEAWAY)4154820 "https://flowers.com"
22/05/2018TAKEMEAWAYTAKEMEAWAY 20 vBul Dogs (Cinema TAKEMEAWAY)4154810 "https://bulldogs.com"

我希望输出在左侧有一个空格分隔日期,中间有字节数:

22/05/2016 0 "https://bears.com"
22/05/2016 241 "https://bears.com"
22/05/2017 447020 "https://bears.com"
22/05/2017 115155 "https://bears.com"
22/05/2017 6792 "https://bears.com"
22/05/2017 625385 "https://bears.com"
22/05/2017 4154850 "https://bulldogs.com/ my cats"
22/05/2017 4154880 "https://cats.com/my dogs"
22/05/2017 4154830 "https://bears.com"
22/05/2017 4154820 "https://flowers.com"
22/05/2018 4154810 "https://bulldogs.com"

有谁知道怎么做sed

标签: linuxbashsed

解决方案


一种方法是用任何非数字开头TAKEMEAWAY和结尾的模式替换一个模式,并将整个匹配替换为空格:TAKEMEAWAY

sed 's/TAKEMEAWAY.*TAKEMEAWAY[^[:digit:]]*/ /g' your_file

推荐阅读