bash - bash如何替换/删除行首后跟空格
问题描述
我正在解析长文本,之前命令的部分副产品是: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
解决方案
我会用sed
.
sed -E '/^\s*$/d; s/^\s*//;' < in > out
这将删除只有空格的行,并从其他行的开头去除空格。
参见https://www.gnu.org/software/sed/manual/sed.html
有一些改进,但这是一般的想法。
推荐阅读
- javascript - componentDidMount() 中调用函数的问题
- spring - 使用 APPLICATION_OCTET_STREAM 的 Spring Boot 406 错误
- apache - 安装 phpmyadmin 时卡住
- kubernetes - Kubernetes 服务架构
- java - 配置本地 nexus 服务器以从其他远程 nexus 存储库下载工件
- python - 在 Python 中用带删除“\n”?
- java - fastxml中,反序列化json后,如果枚举是类中的第一个属性,其他字段为null
- c# - JSON 输出中的 DICOM RetrieveURL 标记为空
- operating-system - 操作系统开发。从文件创建可引导的 iso。
- java - Opendaylight - 为什么 Future 在 init 方法中工作而不是在 rpc 中工作?