【发布时间】:2017-03-02 19:12:28
【问题描述】:
我在 ubuntu 上使用 sed '1p;/^\s/!d;/^\s*id/d' 的这个正则表达式。它保持第一行不变,删除空行和所有不以“{space}”开头或以“{blank}id”开头的行。在 mac 上,它只留下第一行。 regexp 在 mac 上的外观应该如何?
示例 test.csv
id | code | color_code |
-------+------+------------+
11A00B| 15 | 9129102 |
11A00C| 16 | 9129103 |
(2 rows)
id | code | color_code |
-------+------+------------+
11B00B| 25 | 9129152 |
11B00C| 36 | 9129162 |
(2 rows)
id | code | color_code |
-------+------+------------+
11C00B| 22 | 9129107 |
11C00C| 9 | 9129108 |
(2 rows)
在我打电话给sed -i '1p;/^\s/!d;/^\s*id/d' test.csv之后
在ubuntu上
id | code | color_code |
11A00B| 15 | 9129102 |
11A00C| 16 | 9129103 |
11B00B| 25 | 9129152 |
11B00C| 36 | 9129162 |
11C00B| 22 | 9129107 |
11C00C| 9 | 9129108 |
在 Mac 上
id | code | color_code |
【问题讨论】:
-
一个更好的解决方法是更改生成这些表格的程序以不装饰表格。这看起来基本上是 stackoverflow.com/questions/9934264/… 的副本
-
我无权访问该程序。这是第 3 方之一。
-
它确实看起来像是在幕后调用 Postgres。您可以尝试使用包装器来隐藏
psql或类似的东西,但这已经远远超出了您最初问题的范围。
标签: regex bash macos ubuntu sed