linux - 如何grep文本文件中的列中存在的换行符
问题描述
我有一个文本文件,其中的数据由管道分隔符分隔。我有一列名为地址,地址值中有换行符。我必须从文件中删除新行。有没有办法从地址字段中 grep 换行符?
解决方案
这是非常脆弱的,您可能希望使其健壮,但您可以尝试以下操作:
$ cat input
a|b|c|d|e|f|g
1|2|3
a|4|5|6|7
$ awk 'NF<7{getline a; $0 = $0 a}1' FS=\| input
a|b|c|d|e|f|g
1|2|3a|4|5|6|7
如果您担心包含记录分隔符或换行符的多个字段,您可以尝试:
awk '{while( split($0, a, "\|") < 7 ){if(getline b) $0 = $0 b; else exit;}}1' FS=\| input
(在每一个中,我都任意选择了 7 作为预期列的数量,但这很容易参数化。)
推荐阅读
- excel - 如何在 Excel 中考虑重复值时从两列中查找不匹配的记录
- python - Python:从带有条件的字典中附加一个列表
- javascript - TextDecoder.prototype.ignoreBOM 未按预期工作
- html - 如何减少wordpress中的边距?
- javascript - 如果在 React (JSX) 中编写多行
- python - 如何在特定坐标/小部件处添加 Python Kivy Touch Ripple?
- python - 将 django 模型类导入 Plotly-Dash 无状态应用程序
- python - 如何使用python摆脱重复链接
- c# - 无法在 UAT 环境中解析日期,但在我的本地工作
- r - R 包创建函数名称和 .R/.rd 名称