Sed 如何删除单独的正斜杠,而不是数据的一部分?
我有一个文件,其中包含Sed 如何删除单独的正斜杠,而不是数据的一部分?,sed,Sed,我有一个文件,其中包含mm/dd/yyyy格式的日期,但整个文件中也有随机的“/”需要删除,它们是单独的,没有连接到任何东西。我尝试了sed的//[/////g”file.txt,但这会删除日期内的斜杠,从而创建程序中以后无法读取的日期。我正在寻找一种方法来删除随机向前斜杠,但保留日期内包含的斜杠 文件看起来像这样 Date Time 05/23/2010 12:30 05/23/2010 1:30 / 05/24/2010
mm/dd/yyyy
格式的日期,但整个文件中也有随机的“/”需要删除,它们是单独的,没有连接到任何东西。我尝试了sed的//[/////g”file.txt,但这会删除日期内的斜杠,从而创建程序中以后无法读取的日期。我正在寻找一种方法来删除随机向前斜杠,但保留日期内包含的斜杠
文件看起来像这样
Date Time
05/23/2010 12:30
05/23/2010 1:30
/
05/24/2010 1:30
我希望是这样
Date** Time
05/23/2010 12:30
05/23/2010 1:30
05/24/2010 1:30
您可以使用从文件中删除仅包含
/
的所有行
sed'/^\/$/d'文件>新建文件
或者,如果可以有前导/尾随空格,'/^[:blank:]*\/[:blank:]*$/d'
见:
s='05/23/2010 12:30
05/23/2010 1:30
/
05/24/2010 1:30'
sed'/^[:space:]*\/[:space:]*$/d'使用awk
更容易:
awk'NR==1 | |$1~/^([0-9]{2}\/){2}[0-9]{4}$/'文件|列-t
日期时间
05/23/2010 12:30
05/23/2010 1:30
05/24/2010 1:30
在这里:
NR==1
:如果是第一条记录,则返回true
| |
:或
$1~/^([0-9]{2}\/){2}[0-9]{4}$/
:如果第一列与给定的日期格式匹配
- 使用默认操作打印匹配的记录
输出:
Date Time
05/23/2010 12:30
05/23/2010 1:30
05/24/2010 1:30
请显示一个适当的可测试样本和相关的预期输出,不要将它们作为注释或图像发布。您的意思是要删除只包含/
的整行内容吗?像sed'/^\/$/d'file>newfile
?
Date Time
05/23/2010 12:30
05/23/2010 1:30
05/24/2010 1:30