2016-10-20 1 views
1

Diese regexp verwende ich auf ubuntu mit sed '1p;/^\s/!d;/^\s*id/d'. Es lässt die erste Zeile unberührt, entfernt leere Zeilen und alle, die nicht mit '{Leerzeichen}' beginnen oder mit '{Leerzeichen} ID' beginnen. Auf Mac ist es nur die erste Zeile. Wie sollte Regexp auf dem Mac aussehen? Beispiel test.csvsed ubuntu vs mac regexp

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) 

Nachdem ich sed -i '1p;/^\s/!d;/^\s*id/d' test.csv auf ubuntu nennen

id | code | color_code | 
11A00B| 15 | 9129102 | 
11A00C| 16 | 9129103 | 
11B00B| 25 | 9129152 | 
11B00C| 36 | 9129162 | 
11C00B| 22 | 9129107 | 
11C00C| 9 | 9129108 | 

auf mac

id | code | color_code | 
+0

Eine viel bessere Lösung ist, das Programm zu ändern, die diese Tabellen erzeugen die nicht dekorieren Tabellen. Dies sieht im Grunde ein Duplikat von http://stackoverflow.com/questions/9934264/how-to-hide-result-set-decoration-in-psql-output – tripleee

+0

Ich habe keinen Zugriff auf das Programm. Es ist 3rd Party. – user1648825

+0

Es sieht so aus, als würde es Postgres hinter den Kulissen anrufen. Sie könnten mit einem Wrapper experimentieren, um 'psql' oder etwas ähnliches zu schattieren, aber das geht schon weit über den Rahmen Ihrer ursprünglichen Frage hinaus. – tripleee

Antwort

4

Ubuntu nutzt GNU sed, während OS X BSD verwendet sed. Die schnelle Antwort ist, dass \s eine GNU-Erweiterung ist, um Leerzeichen zu erkennen; Verwenden Sie den Standard [[:space:]] an seiner Stelle und Ihr Befehl wird an beiden arbeiten.

sed -i "bak" '1p;/^[[:space:]]/!d;/^[[:space:]]*id/d' test.csv 

(Ein weiterer Unterschied besteht darin, dass BSD sed ein Suffix mit der -i Option erfordert, während es mit GNU ist optional.)

+0

Danke. Genau das, was ich brauchte. – user1648825