bash如何替换/删除紧跟空白的行首
我正在解析长文本,前面命令的部分副产品是: 1) 只有一个空格的行 2) 有一个空格后跟一个句子的行 我怎样才能摆脱它们 我尝试了以下方法:bash如何替换/删除紧跟空白的行首,bash,text,sed,Bash,Text,Sed,我正在解析长文本,前面命令的部分副产品是: 1) 只有一个空格的行 2) 有一个空格后跟一个句子的行 我怎样才能摆脱它们 我尝试了以下方法: tr -s [:space:] |sed -r 's/\^ /\^/g' > output.txt 以及以下 tr -s [:space:] |sed -r 's/\n //g' > output.txt 以及以下 sed 's/\([.!?]\)[[:space:]]*/\1\n/g' file > output.txt 没有成功
tr -s [:space:] |sed -r 's/\^ /\^/g' > output.txt
以及以下
tr -s [:space:] |sed -r 's/\n //g' > output.txt
以及以下
sed 's/\([.!?]\)[[:space:]]*/\1\n/g' file > output.txt
没有成功
示例输入(下划线表示空间,便于视觉理解)
样本输出
Sir_William_Blackstone,
Commentaries_on_the
我会使用
sed
sed -E '/^\s*$/d; s/^\s*//;' < in > out
sed-E'/^\s*$/d;s/^\s*/;'<输入>输出
这将删除只有空格的行,并从其他行的开头去除空格
c、 f
有一些改进,但这是总体思路。我不理解你的描述。你是想摆脱行首的空白还是别的什么?没错,我想摆脱句子开头的空白。我假设这也会让我清理只有一个空格(tr-s[:space:])的空行。是在句子的开头,还是在一行的开头?如果它在一个句子的开头,一个句子是如何定义的?此外,清理空行通常是一件单独的事情。请将示例输入(无描述、无图像、无链接)和您希望的输出添加到您的问题中(无注释)。完成。为reference.sed的/^/'添加了示例输入和输出。由于删除的行没有任何剩余空间,因此仅此一项就可以(我测试)删除仅有一个空格的行(从tr-s[:space:])。Thanks@HenryM空行不会自动删除(除非管道中有其他东西在执行此操作?),代码如下:tr-s[:space:
sed
和tr
只需一个进程就可以完成两个简单的功能,为什么要同时使用sed
呢?tr-s[:space:]还去掉了许多由文本括起来的连续空格。plus非常容易使用
sed -E '/^\s*$/d; s/^\s*//;' < in > out