[問題] 請教換行符號取代的問題

看板Linux作者 (笠原弘子 命!)時間6年前 (2020/01/06 19:58), 編輯推噓2(203)
留言5則, 3人參與, 6年前最新討論串1/1
為了將RouterOS的dhcp lease紀錄整合成一行想要寫個script去處理結果碰到問題 紀錄檔如下 3 D address=10.1.1.1 mac-address=FF:FF:FF:FF:FF:FF client-id="1:ff:ff:ff:ff:ff:ff" address-lists="" server=dhcp-local dhcp-option="" status=bound expires-after=7h36m38s last-seen=23m22s active-address=10.1.1.1 active-mac-address=FF:FF:FF:FF:FF:FF active-client-id="1:ff:ff:ff:ff:ff:ff" active-server=dhcp-local host-name="VOIP_PHONE" *紀錄中每一行最後有一個空格,換行後最前面有五個空格 兩筆紀錄中間有一個空行,這個空行沒有空格 簡單的說就是要把 20 0A 20 20 20 20 20 變成一個 20,於是我用下面兩種方法 sed -i 's/\x0a\x20\x20\x20\x20\x20//g' dhcp-lease.txt sed -i 's/\x20\x0A//g' dhcp-lease.txt 但結果是只有空格會被取代,換行符號不會被處理( \x0a 改成 \n 也一樣) 試了半天只有 tr 可以處理掉換行( \012 ),後來是分成三步驟取代才成功 tr -s "\012" "\011" < dhcp-lease.txt >temp2.txt sed 's/ \x09 //g' temp2.txt >temp3.txt sed 's/\x09/\n/g' temp3.txt >temp4.txt 但總覺得這樣子不漂亮,是否有更好的解法可以參考? -- ~hc是個有美女就好的軟派阿宅,各種被大家批評的作品他都有辦法看的津津有味~ 路人:BLEACH超好看的 hc:不斷創造出神入化視效大決,久保老師總是能讓讀者驚奇。 路人:火影忍者超好看的 hc:用BL映襯女性的幽怨哀愁,岸本老師編劇有如神之一手。 路人:網球王子超好看的 hc:持續挑戰自我與人類的極限,許斐老師重新定義進化一詞。 路人:卡通柯南超好看的 hc:案件後藏著綿密的愛恨情仇,青山老師何時挑戰言情小說? 路人:艦娘動畫超好看的 hc:....他喵的你當我潘子嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.55.155 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1578311890.A.8E2.html

01/06 22:13, 6年前 , 1F
sed ':start / $/ { N; s/\n //; b start }'
01/06 22:13, 1F

01/06 22:14, 6年前 , 2F
sed 一次讀一行,並刪掉結尾的換行符,基本上匹配不到
01/06 22:14, 2F

01/06 22:16, 6年前 , 3F
換行符,要手動用 N 讀下一行,或是用 sed -z
01/06 22:16, 3F

01/07 06:41, 6年前 , 4F
感謝~
01/07 06:41, 4F

01/07 10:02, 6年前 , 5F
有強者給推
01/07 10:02, 5F
文章代碼(AID): #1U4o3IZY (Linux)
文章代碼(AID): #1U4o3IZY (Linux)