bash如何替换/删除行首和空格

时间:2019-10-07 19:37:25

标签: 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

没有成功。

样本输入(下划线表示空格,以便于视觉理解)

_Sir_William_Blackstone,
_
_Commentaries_on_the

样本输出

Sir_William_Blackstone,
Commentaries_on_the

1 个答案:

答案 0 :(得分:1)

我会使用sed

sed -E '/^\s*$/d; s/^\s*//;' < in > out

这将删除仅包含空格的行,并去除其他行开头的空格。

c.f。 https://www.gnu.org/software/sed/manual/sed.html

有一些改进,但这是总体思路。