2016-12-16 17 views
0

私はこのような形式は、文字列があります:私は削除する必要がは空白の文字列を置き換えるSED

{u city : u Zurich , u name : u Hauptbahnhof , u address : u Test address, C106, Bahnhofsstrasse } 

をすべて" u "(スペースを含む)とラインで(スペースを含む)", u "を置き換えますどのように私はそれを行うことができるか分かりません。

sedで可能ですか?

出力は

{city :Zurich 
name :Hauptbahnhof 
address :Test address, C106, Bahnhofsstrasse } 

ようにする必要があり、次は(いくつかの空白の違いで)動作するようですみんな

+0

上記の文字列はどこから取得しましたか?私にとってはPythonからJSONを作成しようとしているようですが、Pythonコードを修正してください。 – andlrc

+0

これは変更されたjson出力からのものですが、残念ながらこのように使用する必要があります – Damon

答えて

2

ありがとう:

's/, u /\n/g;s/\bu //g' 

すなわちまず、改行をすべて", u "を置き換えますすべてuを削除してください。ここでは、uの前に単語文字がありません。

出力は有効なJSONではありません。

+0

これは実際には脆弱です。「u」で終わる単語は削除されます。 – andlrc

+0

@andlrc:固定。 – choroba

+0

エラー "unterminated' s 'コマンド " 私はsed -eを使用しています。パイプの後で使用します。多分助けてください。 – Damon

1

perl次のようにコマンドライン置換を使用し、正確な単語を一致させ、他の文字列と混同しないように\bタグを使用しました。

perl -pe 's/\bu \b//g;' -pe 's/\b , \b/\n/g;' file 
{city : Zurich 
name : Hauptbahnhof 
address : Test address, C106, Bahnhofsstrasse } 

そして、それは壊れJSON使用jqまたはそれを修正する他の方法であれば、他の人が指摘したように。

+0

同じ問題 私は、出力のような文字列を使用する必要があなたはファイルや文字列でコマンドを実行している気にJSON – Damon

+0

である必要はありません。 @Damon – Inian

+0

あなたの例ではtmp-fileを使用して、それが動作するかどうかを確認しました – Damon

関連する問題