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