2016-02-29 42 views
0

我有三個變量我寫到一個文本文件中。現在它變成了一個變量,因爲嘗試和錯誤是這樣的更快。這三個變量是由腳本生成的,每個變量都有一個包含值的列。一個變量,例如看起來是這樣的:慶典 - sed的不替換所有分號

hour 
minute 
minute 
day 

我把它們放在一起使用此代碼:

New_fileloc=$(paste <(echo "$Grabinterval") <(echo "$Filelocation") <(echo "$Time") --delimiters ';' | sed -e 's/^\|$/"/g' -e 's/\;/";"/') 

在我需要用雙引號每列線和用分號隔開結束。目前我正在使用sed在那一個班輪中做這件事。這工作大多好。我的輸出如下所示:

"hour";"A_path/to/somewhere/;2016-02-10 17:07:00Z" 
"minute";"A_path/to/somewhere/;2016-01-29 17:26:20Z" 
"minute";"A_path/to/somewhere/;2016-01-29 17:26:20Z" 
"day";"A_path/to/somewhere/;2016-01-29 00:07:00Z" 

第一個分號替換爲「;」,但每行中的第二個分號不是。我不知道爲什麼。

+2

你可以試着用'g'標誌來擴展sed命令,就像這樣。 sed -e's/^ \ | $ /「/ g'-e's/\; /」;「/ g' 這是未經測試的,但我猜測它可能會有效 – g000ze

+0

@ g000ze,你知道附上你的代碼'''''''''''''''''''''' –

+0

是/ g缺少全局的 –

回答

1

在你的最後命令的sed你缺少一個g

s/\;/";"/g 

你原來的命令's/\;/";"/'只會讓一個替換,第一。