我有一個非常特殊的需求,爲此我一直試圖解決,但沒有成功。只有在條件適用的情況下刪除非ASCII字符,在bash中
我有一個日誌,它是由一個tcp/ip套接字轉儲創建的......它將十六進制轉換爲ASCII,但自然也有一些特殊字符。
我已經設法刪除它們,但是我目前遇到了一些困難:有時,發送了一個0x0A,這與我的應用程序混淆了......我試圖將其刪除,但它也刪除了在該行的末尾有效的0x0A ...
基本上,我有,在日誌文件:
08-14-2017 10:00:00 String={Teste String}
08-14-2017 10:00:00 String={
Teste String2}
08-14-2017 10:00:00 String={
Teste String3}
08-14-2017 10:00:00 String={Teste String4}
我想最終結果爲
08-14-2017 10:00:00 String={Teste String}
08-14-2017 10:00:00 String={Teste String2}
08-14-2017 10:00:00 String={Teste String3}
08-14-2017 10:00:00 String={Teste String4}
中的人物總是之間{},所以}之後的每個0x0A都是有效的,但裏面不是。
我試過的每一個命令要麼刪除所有的0x0A,要麼根本不工作。
我試過的東西
sed 's/^[^}]*}//'
sed 's/\x0A$//'
有什麼想法?
你在ASCII文本或十六進制上應用sed命令嗎? – pchaigno
關於ASCII文本... –