From unknown Sat Jun 14 19:26:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47281: sed: problem with hex replace a literal '$' Resent-From: Bastian Bittorf Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Sat, 20 Mar 2021 13:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 47281 X-GNU-PR-Package: sed X-GNU-PR-Keywords: To: 47281@debbugs.gnu.org X-Debbugs-Original-To: bug-sed@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.161624822726174 (code B ref -1); Sat, 20 Mar 2021 13:51:01 +0000 Received: (at submit) by debbugs.gnu.org; 20 Mar 2021 13:50:27 +0000 Received: from localhost ([127.0.0.1]:51678 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNbzm-0006o5-5E for submit@debbugs.gnu.org; Sat, 20 Mar 2021 09:50:27 -0400 Received: from lists.gnu.org ([209.51.188.17]:41164) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNYLh-00057o-4b for submit@debbugs.gnu.org; Sat, 20 Mar 2021 05:56:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58030) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNYLg-0004xz-Re for bug-sed@gnu.org; Sat, 20 Mar 2021 05:56:48 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:38781) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNYLf-0001OD-4J for bug-sed@gnu.org; Sat, 20 Mar 2021 05:56:48 -0400 Received: from localhost ([178.19.232.51]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MtO06-1lgb493U5u-00uusb for ; Sat, 20 Mar 2021 10:56:43 +0100 Date: Sat, 20 Mar 2021 09:56:43 +0000 From: Bastian Bittorf Message-ID: <20210320095643.horyseyvodgzwjja@nas-SSD> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Provags-ID: V03:K1:z9T4ZEEpTysAVeQAwP0SXVsHCWc9KweWkmVHxOL8NJg21bENsEb MykLT7A17dtXHrItZbVY6oz+MO5N4vjUcPfr5IPYpPY+3rgksQiD5s2Ai/ecmdZLGPsyS5F aVwkrLQH8sX37TLO63k3CnHcmhcpoJVzuWUvKypV01zM5gbmOSAdJp6JCPr2Xy/azTqoDAa xJAr7NW4bFJH6sbunvCoA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:Kx/4mF7/76k=:wWbP1l7eXbHDoIJhvCLjt6 CFZ8iRK70cFqm9KRM/QQ+7jf7J0vg8pAJAZXAwitvKp9FylaDpyc3QfbDwwqYts8jHJH+Ekjm p8sITLtHVV4y2kWRVePp5DMxYS7+84vHT+pWlfF+/SwwqWuZy0JuJC/vKz5UQMzk0F9gPYtG3 zhBcBiU66WmYY/k4fHQRbDDymfbB6yHv0q5IqdzbH3mXqnB2d4PevuI+oNyKCioffHnC+RYSH 7E+D9oNnezbxjGR/XPE4kFAe60uUBp//wp59Kxa4RQW1AiO5kYxkUe+wkI1e+7XoE1Loe9NHk uOTC6zrChDiN/mQDta0mwaxwC+6SW8rnQkTiL1RZjcGvHT+rMLxyrrzwR01dxyzCLav45zDKf WGHb79TSJgtLeAYWgZq1n+p6l+kInNhoxI46XzyDQcjv3kCe58TKPq7Wiy/58 Received-SPF: none client-ip=212.227.126.130; envelope-from=bb@npl.de; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Mailman-Approved-At: Sat, 20 Mar 2021 09:50:25 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Dear hard working developers, when replacing in hex mode, and a '$' = \x24 is at the end of the search string, it seems to be parsed as 'end', which was at least not intended by my usage: e.g. # echo 'foo $bar$ baz' >testfile # hexdump -C testfile 00000000 66 6f 6f 20 24 62 61 72 24 20 62 61 7a 0a |foo $bar$ baz.| # ^^^^^^^^^^^^^^^ # i want to replace '$bar$' # sed 's/\x24\x62\x61\x72\x24/\x65\x65\x65\x65\x65/' testfile foo $bar$ baz (no match/replacement happens) # now omit the last char '$' # sed 's/\x24\x62\x61\x72/\x61\x65\x65\x65/' testfile foo aeee$ baz # now making the match on char longer: # sed 's/\x24\x62\x61\x72\x24\x20/\x61\x65\x65\x65\x65\x20/' testfile foo aeeee baz # this happends with latest trunk/master: # bastian@ryzen:~/software/sed$ sed/sed --version sed/sed (GNU sed) 4.8.7-b352-dirty I stumpled over this behaviour while replacing real binary data, where randomly a 0x24 was involved at the end of the match string Thanks for reading and maybe fixing 8-) bye, bastian From unknown Sat Jun 14 19:26:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47281: sed: problem with hex replace a literal '$' References: <20210320095643.horyseyvodgzwjja@nas-SSD> In-Reply-To: <20210320095643.horyseyvodgzwjja@nas-SSD> Resent-From: Nora Platiel Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Sat, 20 Mar 2021 17:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47281 X-GNU-PR-Package: sed X-GNU-PR-Keywords: To: 47281@debbugs.gnu.org Received: via spool by 47281-submit@debbugs.gnu.org id=B47281.161625997518615 (code B ref 47281); Sat, 20 Mar 2021 17:07:02 +0000 Received: (at 47281) by debbugs.gnu.org; 20 Mar 2021 17:06:15 +0000 Received: from localhost ([127.0.0.1]:53076 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNf3H-0004qB-FT for submit@debbugs.gnu.org; Sat, 20 Mar 2021 13:06:15 -0400 Received: from mout.gmx.net ([212.227.15.19]:54767) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNf3D-0004pt-GR for 47281@debbugs.gnu.org; Sat, 20 Mar 2021 13:06:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1616259965; bh=l0CwLNYQ0nU9tIjiW1FI3tNZI74CWD2HJsV8se6JWLw=; h=X-UI-Sender-Class:From:To:Subject:Date; b=dRCEUvetVeq/SmpcFpn9rl7d9+pkzIBPhmo0g4QRScIMgeaCU5z+wjVfk3imHLuoU wtez3fKhLt1VPRcQ7aYrPN1I8/1uwNfHVxVCBCdp4qmWZTwmC/SAaqtfGKafPB85YD xKa0th5CbpBqc3BSaO+GsGs9sSSgyf5VWv1AY5qc= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [87.14.159.89] ([87.14.159.89]) by web-mail.gmx.net (3c-app-mailcom-bs04.server.lan [172.19.170.170]) (via HTTP); Sat, 20 Mar 2021 18:06:05 +0100 MIME-Version: 1.0 Message-ID: From: Nora Platiel Content-Type: text/plain; charset=UTF-8 Date: Sat, 20 Mar 2021 18:06:05 +0100 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:VyuOlcbay3CKsk+tm4GknY1Q2rxLANAKLAVk+25NdmfrILpQfkZ8cXgLMuSnHIXWAxDB0 4fol5t77iiJXQwczD1Gv7NmhbkAgCplWX4m//BC8WELThUv8RRAnyb6lioK8wvWWxe8+nmTrYmGE p3Qb5FYDjptC9kKV0AZehhdH+R52B+t7/Uj8NC7e+Qm+ucu9nV8f/zxfOP9sRm6VIMO6y7vvY052 R9NN4O5pVLvxtZ3xUUZlEXMJs+R9Q4qZPfkd4UXU8emJPiEzqRF4NfEEPbRtdtGa/mft7KaTaU67 xk= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:klLvFzoCnVw=:QeR0aOsd/flkqT1taIiciN ifRs9pvsdwu1TmJPnR93MjJbSQ2DSpE0Q6UC/JIXLKNaaC8bLYJT3g2WuCdC86EH/2oMTZUaa oFGmHSlMJbOs+2RYRcLcbWGOcHVYgbZgTiT6UIYYmxnHkxRiKBAVm3N/xrPnyS6ORXga9RYIj MzvtKirysUEsaqDJ1+ogJQK5lcmbRRGhvh4Q565SWlo+UHs6BTH/NXJu0gEzerID508Y70uah /jXwzZppyb09f7u6hTQuZBWKRQpAkI5g1qIvKOrPCXYRlnr3nWyL/LLlwBEh8kG4pR8aOZ1a+ 94PYqVQMh5uX9IgLDQFMLl3GiUjUM+xaVkHhmnwFBsuZJRuymXvDZhzECrPDvb0yRf1NwRDb6 2iJTRKCF+VA5tb/Pf0y0wZADZCiLo7B5bKvQrPHzhmGAqd7LeW98PuJmiHZDIV2Sb+uVm2c23 2gTUlk4h2OnAtPAsziGUtJsjgH08Voq/7EPVZVyTCw0oPVDyRNCCpNjCUkHsmffBfV2+/qh3h iBS+LFNU2DjoqnkpwbH1B+W4VUioQADXkJkBwavDKW1rHYvhi84+xzEaXNZN5SudKLuMvJOwL jdneX7w8FqyEE= X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello, the behavior you are describing is documented here: https://www.gnu.org/software/sed/manual/sed.html#Escaping-Precedence If you want to produce a basic regular expression given a string to be matched literally, precede any of $*.[\]^ with \ Likewise, if you are using hex escapes (\xHH), precede any of \x24 \x2a \x2e \x5b \x5c \x5d \x5e with \x5c From unknown Sat Jun 14 19:26:30 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47281: sed: problem with hex replace a literal '$' References: <20210320095643.horyseyvodgzwjja@nas-SSD> In-Reply-To: <20210320095643.horyseyvodgzwjja@nas-SSD> Resent-From: Bastian Bittorf Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Sun, 21 Mar 2021 16:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47281 X-GNU-PR-Package: sed X-GNU-PR-Keywords: To: 47281@debbugs.gnu.org Cc: nplatiel@gmx.us X-Debbugs-Original-To: bug-sed@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.161634275427358 (code B ref -1); Sun, 21 Mar 2021 16:06:02 +0000 Received: (at submit) by debbugs.gnu.org; 21 Mar 2021 16:05:54 +0000 Received: from localhost ([127.0.0.1]:55323 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lO0aP-00077B-Kz for submit@debbugs.gnu.org; Sun, 21 Mar 2021 12:05:53 -0400 Received: from lists.gnu.org ([209.51.188.17]:54368) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNzSx-0003I7-3E for submit@debbugs.gnu.org; Sun, 21 Mar 2021 10:54:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34870) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNzSw-0002VM-RG for bug-sed@gnu.org; Sun, 21 Mar 2021 10:54:06 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:34293) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNzSu-0003co-SG for bug-sed@gnu.org; Sun, 21 Mar 2021 10:54:06 -0400 Received: from localhost ([91.137.48.201]) by mrelayeu.kundenserver.de (mreue107 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MCsDe-1lWpAV2kEK-008rJn; Sun, 21 Mar 2021 15:53:59 +0100 Date: Sun, 21 Mar 2021 14:53:58 +0000 From: Bastian Bittorf Message-ID: <20210321145358.ac6gx5wadzcuwwfx@nas-SSD> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Provags-ID: V03:K1:WJANNhIprDxLcY2SVAHK21MhjovNKwe1c3fl8i0SXCDxa2ta8WZ Ghswo1JvwdFAQ9q0p+MHcpV2idxgP4jZbzff78pTx8HytjTSsNX/sF4ed5mscEHPKfg1MMy 9Vd8Hy7Z6b8bRhn8aFbekqB3RlQOXkY+MOISlBS/0Pz5NDQNYLSRDWur3Owu17AwdGDB2U9 yEJhzKX1HhRz6pLE3AVmA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:vQEXtu2Y2G8=:JoJI7B4TcDY7yC4wzXJIcI yKF9HFVz3k+iJmcGE6C9pgAkPTIIaZLz89AAyoyF2jwhuApKeZAXiL9G0dVmwv6uZ6zwXFejs i9gRrumE9sTypio8wKW+xB/zd0CQNk6VmeQvACCSM6vVqXdKpQbxMOHcdJd+iGd4BIRaeMFvT xL45Gyq7cwWIXgwSPL4wDOiC+1ZD+DiLyV1rBd/+T5vn+YhCVDOMM0DWwfXdWrz7OMEnpr90w aes/1yxP8CSUDOPnfoF/vI1Eefs7O/SyHjhrUuIqA2fAJLn7nMPBk3CkDTug0t+uYznpjLaqg fxQhTjgOsoa4MuVh5vPUlsvAEASCss8RMRbiHdsfH4RUNycNzySRaYc67+GNlxBhdGODEvnxi GEClDof7eQY/XZuRu+DCaT/+d/Hx/Cb5tLcjvHVvIsR0pGEzg4zGKU55vAnq3 Received-SPF: none client-ip=212.227.17.13; envelope-from=bb@npl.de; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Mailman-Approved-At: Sun, 21 Mar 2021 12:05:52 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Hello, > > the behavior you are describing is documented here: > https://www.gnu.org/software/sed/manual/sed.html#Escaping-Precedence > > If you want to produce a basic regular > expression given a string to be matched > literally, precede any of $*.[\]^ with \ > Likewise, if you are using hex escapes (\xHH), > precede any of \x24 \x2a \x2e \x5b \x5c \x5d \x5e with \x5c Hi Nora, thanks for your help suggesting the escaping. I understand, that this behaviour is valid and not a bug. Maybe you can post this to the Mailingslist as well, i'am not subscribed there. Indeed this is really awkward, but I have to accept that and use now something like that: #!/bin/sh # # [...] # # case "$hex" in # 24|2a|2e|5b|5c|5d|5e) # hex="5c\x$hex" # ;; # esac see: https://github.com/bittorf/kritis-linux/commit/d3cc6c84a6c021ae2f7e9351f9f4ef0fc7098c0b Thanks again & bye, Bastian Bittorf