From unknown Mon Aug 18 11:26:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#21253: sed escape bug Resent-From: Jacob Young Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Thu, 13 Aug 2015 15:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 21253 X-GNU-PR-Package: sed X-GNU-PR-Keywords: To: 21253@debbugs.gnu.org X-Debbugs-Original-To: bug-sed@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.1439480827485 (code B ref -1); Thu, 13 Aug 2015 15:48:02 +0000 Received: (at submit) by debbugs.gnu.org; 13 Aug 2015 15:47:07 +0000 Received: from localhost ([127.0.0.1]:55165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZPuig-00007i-JF for submit@debbugs.gnu.org; Thu, 13 Aug 2015 11:47:07 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56125) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZPrYo-0002PH-UC for submit@debbugs.gnu.org; Thu, 13 Aug 2015 08:24:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZPrYn-0003w8-P8 for submit@debbugs.gnu.org; Thu, 13 Aug 2015 08:24:42 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:58766) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPrYn-0003w4-KK for submit@debbugs.gnu.org; Thu, 13 Aug 2015 08:24:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37865) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPrYi-00014Q-Vn for bug-sed@gnu.org; Thu, 13 Aug 2015 08:24:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZPrYh-0003uW-No for bug-sed@gnu.org; Thu, 13 Aug 2015 08:24:36 -0400 Received: from mail-wi0-x230.google.com ([2a00:1450:400c:c05::230]:37128) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPrYh-0003tz-Ho for bug-sed@gnu.org; Thu, 13 Aug 2015 08:24:35 -0400 Received: by wibhh20 with SMTP id hh20so71631215wib.0 for ; Thu, 13 Aug 2015 05:24:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=f2UDHh1o14mTE6u4AcrHHLhOB5lnfnJFZDHcuWtzyZ0=; b=spW0HZ1NOmmnR42ZtUrRsTqBQVpHP6yFC21ntUPQ6q8FIx+qX0stkdPShcKo98psRX SOZVmUHN1Mq9T9uwTThbCNGE1VQW046oz1X9ZvkxNJ3yeBXbn3KCI6QseE76yPs8dAN3 MD//oIDlU1CCSq+yAGRBy1WOy1m8MfAKk8c/l/dFWegYNkAWYDpieCM+L0cI4yXg52XU e20qm/YeHUXqnmIrIg14eIZwk/YFgp9sb7tN6+O+c28gb6hLsL7Uf42s10ejIp0FriKX WU/NtlW6aoYlTO9aUdOdhHzsET8tgxnk8lsMFhm+NMkpB1MHbDRMsue5CWBSCqfN9FrR OipQ== MIME-Version: 1.0 X-Received: by 10.194.22.33 with SMTP id a1mr876324wjf.90.1439468674002; Thu, 13 Aug 2015 05:24:34 -0700 (PDT) Received: by 10.27.211.12 with HTTP; Thu, 13 Aug 2015 05:24:33 -0700 (PDT) Date: Thu, 13 Aug 2015 08:24:33 -0400 Message-ID: From: Jacob Young Content-Type: multipart/alternative; boundary=047d7b5d8857fab585051d306a3a X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Mailman-Approved-At: Thu, 13 Aug 2015 11:47:05 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -4.0 (----) --047d7b5d8857fab585051d306a3a Content-Type: text/plain; charset=UTF-8 The escape '\c\' fails at the end of a regex. ~$ echo a | sed -e 's/a/\c\/' | hexdump -c sed: -e expression #1, char 8: unterminated `s' command ~$ echo a | sed -e 's/a/\c\b/' | hexdump -c 0000000 034 b \n 0000003 ~$ sed --version sed (GNU sed) 4.2.2 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Jay Fenlason, Tom Lord, Ken Pizzini, and Paolo Bonzini. GNU sed home page: . General help using GNU software: . E-mail bug reports to: . Be sure to include the word ``sed'' somewhere in the ``Subject:'' field. --047d7b5d8857fab585051d306a3a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
The escape '\c\' fails at the end of a regex.

~$ echo a | sed -e 's/a/\c\/' | hexdump -c
sed: = -e expression #1, char 8: unterminated `s' command
~$ echo a = | sed -e 's/a/\c\b/' | hexdump -c
0000000 034 =C2=A0 b = =C2=A0\n
0000003
~$ sed --version
sed (GNU se= d) 4.2.2
Copyright (C) 2012 Free Software Foundation, Inc.
<= div>License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
Th= is is free software: you are free to change and redistribute it.
= There is NO WARRANTY, to the extent permitted by law.

<= div>Written by Jay Fenlason, Tom Lord, Ken Pizzini,
and Paolo Bon= zini.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help u= sing GNU software: <http://www.g= nu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>.
Be sure to include= the word ``sed'' somewhere in the ``Subject:'' field.

--047d7b5d8857fab585051d306a3a-- From unknown Mon Aug 18 11:26:55 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jacob Young Subject: bug#21253: closed (RE: sed escape bug) Message-ID: References: <20170216225231.GA31549@gmail.com> X-Gnu-PR-Message: they-closed 21253 X-Gnu-PR-Package: sed Reply-To: 21253@debbugs.gnu.org Date: Thu, 16 Feb 2017 22:54:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1487285642-16805-1" This is a multi-part message in MIME format... ------------=_1487285642-16805-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #21253: sed escape bug which was filed against the sed package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 21253@debbugs.gnu.org. --=20 21253: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D21253 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1487285642-16805-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 21253-done) by debbugs.gnu.org; 16 Feb 2017 22:53:10 +0000 Received: from localhost ([127.0.0.1]:42769 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceUvG-0004Lz-20 for submit@debbugs.gnu.org; Thu, 16 Feb 2017 17:53:10 -0500 Received: from mail-qk0-f180.google.com ([209.85.220.180]:32827) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceUvE-0004Lh-3Q for 21253-done@debbugs.gnu.org; Thu, 16 Feb 2017 17:53:08 -0500 Received: by mail-qk0-f180.google.com with SMTP id p22so30274365qka.0 for <21253-done@debbugs.gnu.org>; Thu, 16 Feb 2017 14:53:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:subject:message-id:mime-version:content-disposition :user-agent; bh=wIZOfRl4x5pVd7hYrYGDhrr8sISnhT9ZbNteKaOZq88=; b=hAg33bN8iZjKMhusWCaaY9XfqYQOxCSRcje1ZSRHv588dkP/8i681rUryUaYnnA4hX zOfhwn9uvVUpF5Vxq1GgbjjFt2ilXLEgELrz31JeSzQyaoe7uJeE+6mL0tMIyk/mKTBp uDOurLyQ7ZdG8ybbI2Uvr/I3UPHGMwnawzFRLkddXYjIz60LuNUzzypplcP2tn5rbebD uL/ee+a39/+QX0KX709gMdVT98mxuTVzFDrKINdcWbW20c8Ynx6kGykL3FHSNS+zwwIX Bs8TMf7pPDiWBlDvEcQiaiFBuMAs/AIh1aU2lG16JttEQg0iSLU1e7BGwOShS/+plljN h0WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=wIZOfRl4x5pVd7hYrYGDhrr8sISnhT9ZbNteKaOZq88=; b=qpOBm/uBgz45fs2w0SNoxpMDRL/pla5hN7bEeTMbKJxDYSIWa/0S38miVZ13VMm5bU l/EaTYiCEvXxpf1RfYkin7NT4p/fcYZdRjJYpnVmKxkXVo78tjm1JGMghyxiu1kBaHZX zTvMgbM+7H5GuSZFCNruc3/xHa6kGOi+1sUvNKezwMVgf7+YXkgGKO5WDpKL1n0Y+esK Lsp7eHngEHV3K2p34t5nZ9e3RdVb1BLZknKrSnHYOssaX1xrOKVMzeKOfWd9Bs29rDow Qu0fxro8R5tVUYMGIGKb9jbzXwKLwefZaziPPL6GjMhLYKn9H4H4GbSuwUidzwYxpIDY Blig== X-Gm-Message-State: AMke39lCWavLLnXcCBxDoK4kQLt6PvRhsDD2JzxSraSpwPB/F7ntqkzbjS5RrxjYigljVg== X-Received: by 10.55.130.132 with SMTP id e126mr4498167qkd.16.1487285582313; Thu, 16 Feb 2017 14:53:02 -0800 (PST) Received: from gmail.com (housegordon.org. [104.236.108.240]) by smtp.gmail.com with ESMTPSA id 45sm28624qts.40.2017.02.16.14.53.01 for <21253-done@debbugs.gnu.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Feb 2017 14:53:01 -0800 (PST) Date: Thu, 16 Feb 2017 22:52:32 +0000 From: Assaf Gordon To: 21253-done@debbugs.gnu.org Subject: RE: sed escape bug Message-ID: <20170216225231.GA31549@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Score: -0.2 (/) X-Debbugs-Envelope-To: 21253-done 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: -0.2 (/) Hello, Sorry for the delayed response. Jacob Young gmail.com> wrote: > The escape '\c\' fails at the end of a regex. > > ~$ echo a | sed -e 's/a/\c\/' | hexdump -c > sed: -e expression #1, char 8: unterminated `s' command > ~$ echo a | sed -e 's/a/\c\b/' | hexdump -c > 0000000 034 b \n > 0000003 > ~$ sed --version > sed (GNU sed) 4.2.2 This is an interesting case: It's a bug in older sed-4.2.2, but the fix is perhaps not your expected behaviour of allowing '/' after '\c\'. A single backslash after '\c' was ambigious in sed-4.2.2: Should it be parsed as the option to '\c' (e.g. '\c\' is like '\cA'), or should it be parsed like other back-slashes, where it removes the special meaning of the following character (e.g. 's/x/\//' replaces an 'x' with a '/' ). The previous behaviour lead to inconsistencies, exactly as you've encountered. Compare: # '\t' means TAB, backslash affects the character that follows: $ echo x | sed-4.2.2 's/x/\t/' | hexdump -c 0000000 \t \n 0000002 # but here the '\c\' is taken as one item, and 't' is parsed by itself: $ echo x | sed-4.2.2 's/x/\c\t/' | hexdump -c 0000000 034 t \n 0000003 # yet '/' immediately after '\c\' was rejected: $ echo x | sed-4.2.2 -e 's/x/\c\/' | hexdump -c sed: -e expression #1, char 8: unterminated `s' command Commit v4.2.2-99-g156e099 [1] fixed this behaviour. To use backslash as control character, TWO backslashes are required - just like using a literal backslash anywhere else: ## Two backslashes are needed for CTRL-\ $ echo x | sed-4.4 's/x/\c\\/' | hexdump -c 0000000 034 \n 0000002 ## A single backslash is not enough: $ echo x | sed-4.4 's/x/\c\/' | hexdump -c sed: -e expression #1, char 8: unterminated `s' command ## Ambigious usage is rejected: $ echo x | sed-4.4 's/x/\c\t/' | hexdump -c sed: -e expression #1, char 9: recursive escaping after \c not allowed This behaviour was introduced in sed-4.3. As such I'm closing this bug, but discussion can continue by replying to this thread. regards, - assaf [1] https://git.savannah.gnu.org/cgit/sed.git/commit/?id=156e0998 ------------=_1487285642-16805-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 13 Aug 2015 15:47:07 +0000 Received: from localhost ([127.0.0.1]:55165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZPuig-00007i-JF for submit@debbugs.gnu.org; Thu, 13 Aug 2015 11:47:07 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56125) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZPrYo-0002PH-UC for submit@debbugs.gnu.org; Thu, 13 Aug 2015 08:24:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZPrYn-0003w8-P8 for submit@debbugs.gnu.org; Thu, 13 Aug 2015 08:24:42 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:58766) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPrYn-0003w4-KK for submit@debbugs.gnu.org; Thu, 13 Aug 2015 08:24:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37865) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPrYi-00014Q-Vn for bug-sed@gnu.org; Thu, 13 Aug 2015 08:24:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZPrYh-0003uW-No for bug-sed@gnu.org; Thu, 13 Aug 2015 08:24:36 -0400 Received: from mail-wi0-x230.google.com ([2a00:1450:400c:c05::230]:37128) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPrYh-0003tz-Ho for bug-sed@gnu.org; Thu, 13 Aug 2015 08:24:35 -0400 Received: by wibhh20 with SMTP id hh20so71631215wib.0 for ; Thu, 13 Aug 2015 05:24:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=f2UDHh1o14mTE6u4AcrHHLhOB5lnfnJFZDHcuWtzyZ0=; b=spW0HZ1NOmmnR42ZtUrRsTqBQVpHP6yFC21ntUPQ6q8FIx+qX0stkdPShcKo98psRX SOZVmUHN1Mq9T9uwTThbCNGE1VQW046oz1X9ZvkxNJ3yeBXbn3KCI6QseE76yPs8dAN3 MD//oIDlU1CCSq+yAGRBy1WOy1m8MfAKk8c/l/dFWegYNkAWYDpieCM+L0cI4yXg52XU e20qm/YeHUXqnmIrIg14eIZwk/YFgp9sb7tN6+O+c28gb6hLsL7Uf42s10ejIp0FriKX WU/NtlW6aoYlTO9aUdOdhHzsET8tgxnk8lsMFhm+NMkpB1MHbDRMsue5CWBSCqfN9FrR OipQ== MIME-Version: 1.0 X-Received: by 10.194.22.33 with SMTP id a1mr876324wjf.90.1439468674002; Thu, 13 Aug 2015 05:24:34 -0700 (PDT) Received: by 10.27.211.12 with HTTP; Thu, 13 Aug 2015 05:24:33 -0700 (PDT) Date: Thu, 13 Aug 2015 08:24:33 -0400 Message-ID: Subject: sed escape bug From: Jacob Young To: bug-sed@gnu.org Content-Type: multipart/alternative; boundary=047d7b5d8857fab585051d306a3a X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Thu, 13 Aug 2015 11:47:05 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -4.0 (----) --047d7b5d8857fab585051d306a3a Content-Type: text/plain; charset=UTF-8 The escape '\c\' fails at the end of a regex. ~$ echo a | sed -e 's/a/\c\/' | hexdump -c sed: -e expression #1, char 8: unterminated `s' command ~$ echo a | sed -e 's/a/\c\b/' | hexdump -c 0000000 034 b \n 0000003 ~$ sed --version sed (GNU sed) 4.2.2 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Jay Fenlason, Tom Lord, Ken Pizzini, and Paolo Bonzini. GNU sed home page: . General help using GNU software: . E-mail bug reports to: . Be sure to include the word ``sed'' somewhere in the ``Subject:'' field. --047d7b5d8857fab585051d306a3a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
The escape '\c\' fails at the end of a regex.

~$ echo a | sed -e 's/a/\c\/' | hexdump -c
sed: = -e expression #1, char 8: unterminated `s' command
~$ echo a = | sed -e 's/a/\c\b/' | hexdump -c
0000000 034 =C2=A0 b = =C2=A0\n
0000003
~$ sed --version
sed (GNU se= d) 4.2.2
Copyright (C) 2012 Free Software Foundation, Inc.
<= div>License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
Th= is is free software: you are free to change and redistribute it.
= There is NO WARRANTY, to the extent permitted by law.

<= div>Written by Jay Fenlason, Tom Lord, Ken Pizzini,
and Paolo Bon= zini.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help u= sing GNU software: <http://www.g= nu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>.
Be sure to include= the word ``sed'' somewhere in the ``Subject:'' field.

--047d7b5d8857fab585051d306a3a-- ------------=_1487285642-16805-1--