簡體   English   中英

sed替換與python替換

[英]sed replace versus python replace

輸出的格式是相同的,除了使用python時,輸出在每個字符串之間添加一個新行。 知道為什么以及如何使用sed做到這一點?

sed 's:\x01: | :g'

01.06.2012 07:51:55.135 | 3732 | INFO | xxx | 8=FIX.4.2 | 9=157 | 35=V | 56=xxx | 49=xxx | 52=20120601-07:51:54 | 34=40 | 262=VMD1338537114945 | 263=1 | 264=0 | 265=1 | 
01.06.2012 07:51:55.135 | 3732 | INFO | xxx | 8=FIX.4.2 | 9=157 | 35=V | 56=xxx | 49=xxx | 52=20120601-07:51:54 | 34=41 | 262=VLT1338537114945 | 263=1 | 264=1 | 265=1 | 

for line in sys.stdin:
    print line.replace("\01", " | ")


01.06.2012 07:51:55.135 | 3732 | INFO | xxx | 8=FIX.4.2 | 9=157 | 35=V | 56=xxx | 49=xxx | 52=20120601-07:51:54 | 34=40 | 262=VMD1338537114945 | 263=1 | 264=0 | 265=1 | 

01.06.2012 07:51:55.135 | 3732 | INFO | xxx | 8=FIX.4.2 | 9=157 | 35=V | 56=xxx | 49=xxx | 52=20120601-07:51:54 | 34=41 | 262=VLT1338537114945 | 263=1 | 264=1 | 265=1 | 

我不是sed guru,但您可以使用以下內容在sed中的每一行末尾添加換行符:

 sed -e 's/$/\n/g'

這是因為$匹配一行的結尾。 請注意,您可以將多個sed命令與-e串聯起來(如Michael Mrozek所指出 - 請參閱man sed以獲取更多信息)。

添加第二個替換,用換行符替換行的結尾: s/$/\\n/ 既然你現在有兩個模式,你需要使用-e

sed -e 's:\x01: | :g' -e 's/$/\n/'

這可能對你有用:

sed '/\x01/{s// | /g;G}' file

或者,如果您只想為每一行添加換行符:

sed G file

print添加一個新行試試這個

sys.stdout.write(line.replace("\01"," | "))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM