使用unix删除/替换文件中的动态String
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用unix删除/替换文件中的动态String相关的知识,希望对你有一定的参考价值。
我有包含下面文件名的数据的文件: - 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
年月日
任何人都可以帮助解决这个问题
答案
只需使用** sed**
:
sed 's@.*-ext-[^/]*/@@' file
另一答案
使用下面的sed
命令,它将适合你。它将如何运作?首先,它将找到模式TimeStamp_.*-ext-.*
(在这里你需要添加点.
与*
通知sed
命令你使用*
作为外卡字符)并替换为空行和第二个表达式/^s*$/d
将搜索空行并删除它和最后,您将获得所需的输出。在;
命令中,每个表达式都用sed
分隔。
sed -e 's/TimeStamp_.*-ext-.*//;/^s*$/d' Test.txt > tmp.txt
mv tmp.txt Test.txt
希望这会帮助你。
另一答案
如果要在第二个斜杠后保留所有内容,请使用
cut -d"/" -f3- Test.txt
以上是关于使用unix删除/替换文件中的动态String的主要内容,如果未能解决你的问题,请参考以下文章
使用 VBScripts 将文本文件 unix 行结尾替换为 Windows [重复]