使用unix删除/替换文件中的动态String

问题描述 投票:0回答:3

我有包含下面文件名的数据的文件: - Test.txt

TimeStamp_2017-12-43 09:09:14.0999/-ext-10100/Year/Month/Day
TimeStamp_2000-12-43 07:09:14.0999/-ext-10200/Year/Month/Day
TimeStamp_2015-12-43 06:09:14.0999/-ext-10200/Year/Month/Day
TimeStamp_2010-12-43 05:09:14.0999/-ext-10200/Year/Month/Day
TimeStamp_2011-12-43 04:09:14.0999/-ext-1090/Year/Month/Day
TimeStamp_2018-12-43 03:09:14.0999/-ext-920/Year/Month/Day
TimeStamp_2013-12-43 02:09:14.0999/-ext-1200/Year/Month/Day
TimeStamp_2016-12-43 01:09:14.0999/-ext-02/Year/Month/Day

在这里,我需要在每一行中替换或删除以下格式

TimeStamp_*/-ext-*

**文件中的输入行(Sample TimeStamp值和-text-值每次都在变化)

TimeStamp_2017-12-43 09:09:14.0999 / -ext-10100 /年/月/日

Ouput Line after remove or replace

年月日

任何人都可以帮助解决这个问题

shell unix
3个回答
0
投票

只需使用** sed**

sed 's@.*-ext-[^/]*/@@' file

0
投票

使用下面的sed命令,它将适合你。它将如何运作?首先,它将找到模式TimeStamp_.*-ext-.*(在这里你需要添加点.*通知sed命令你使用*作为外卡字符)并替换为空行和第二个表达式/^\s*$/d将搜索空行并删除它和最后,您将获得所需的输出。在;命令中,每个表达式都用sed分隔。

sed -e 's/TimeStamp_.*-ext-.*//;/^\s*$/d' Test.txt > tmp.txt
mv tmp.txt Test.txt

希望这会帮助你。


0
投票

如果要在第二个斜杠后保留所有内容,请使用

cut -d"/" -f3- Test.txt
© www.soinside.com 2019 - 2024. All rights reserved.