From unknown Sat Aug 09 01:08:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39978: Weird substitution of square brackets Resent-From: Evangelos Tsagkas Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Sat, 07 Mar 2020 20:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 39978 X-GNU-PR-Package: sed X-GNU-PR-Keywords: To: 39978@debbugs.gnu.org X-Debbugs-Original-To: bug-sed@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15836136241391 (code B ref -1); Sat, 07 Mar 2020 20:41:01 +0000 Received: (at submit) by debbugs.gnu.org; 7 Mar 2020 20:40:24 +0000 Received: from localhost ([127.0.0.1]:47630 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jAgFD-0000MM-O7 for submit@debbugs.gnu.org; Sat, 07 Mar 2020 15:40:23 -0500 Received: from lists.gnu.org ([209.51.188.17]:51126) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jAfoa-00085n-TE for submit@debbugs.gnu.org; Sat, 07 Mar 2020 15:12:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45552) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAfoZ-0005hU-V8 for bug-sed@gnu.org; Sat, 07 Mar 2020 15:12:52 -0500 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 autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAfoZ-0001LW-0o for bug-sed@gnu.org; Sat, 07 Mar 2020 15:12:51 -0500 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]:39852) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jAfoY-0001Ix-QI for bug-sed@gnu.org; Sat, 07 Mar 2020 15:12:50 -0500 Received: by mail-oi1-x233.google.com with SMTP id r16so6192572oie.6 for ; Sat, 07 Mar 2020 12:12:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=T2zoaNISVzpgsBOukdXW0OJwFcj4nClSerkeRtaRT8Y=; b=G7xkoyKHzKf2128szhNPLUu6wM41kxumHjW/6AESq0/08DsdEx9D8zhxKlw73IyU7S 1jNYnW6Yxe2KcChjR0llyVL/UcTiyEGZgHEtFttJfoASkEKOBqWEZGeZV/uMR7I6u6Bb W5+R8ZVdMJIq2Czw+3dx1591/fr2x7PnEyxn8zHOAjLnzWTMrsE1hbes5Vs3jETI1sBQ FTNTc+ZP1mStn+I5y9fjPvtIofJMBw5Gw/4XRryQCjZp8jorbA6pPV3eyqWdW8NT7i9z 2GoNw2bHHmEIWf/19Mv3pXgCM2RrxtdJV79T6UsndqRrip1bjySVYRc8uhxMK1QAwcev /72Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=T2zoaNISVzpgsBOukdXW0OJwFcj4nClSerkeRtaRT8Y=; b=sTI5rIPj9RsGDouRBQR5XARr3if5bK0dsLPKxjdpvQmTxqhFc3N6PMQmiD5h5dXdCl lxizylyrblbi9sI1rviqRtQSdcesZjE1L8bOpASzKQtX0SA2W9f5G70eMQpVZYirKRUc UWuYeHsdo7iOWXXZZBE6Vfft3p5tJpZoU/HDZY9SvO10WMcHJq+gM96aKXhGxFm9feJB ap7hX0k5TBz2Yl3A7kZ8YE1uxj7/eGcdo2d3WEA3EvJwhKzCUJs1/tRWq/Zekf/CTabT 1mbnhbNeiusizlWtRG8t4fw+EWB0h366exkPe00mGpdgtCtN1RucDGwwuf3TW9mFZ7G8 x66A== X-Gm-Message-State: ANhLgQ3IwIx/84X6Gn0AEKJPFlmaP6l5ZCiRvwXvXvBtYUF2w/BdDIgN GCUVRLPH1nm6g1926+GlJT2v/Fe9IdFD72AUTBOuejeyvsQ= X-Google-Smtp-Source: ADFU+vsH/eXH/Zya10uLxOiBFXEqRFIbPnWrZq+OnY69oh9Te0PtRR33kinlAnvH2xMkvPfYuZxkO4kjFhgf3j8QP9w= X-Received: by 2002:aca:c78e:: with SMTP id x136mr6723666oif.116.1583611969378; Sat, 07 Mar 2020 12:12:49 -0800 (PST) MIME-Version: 1.0 From: Evangelos Tsagkas Date: Sat, 7 Mar 2020 22:17:28 +0200 Message-ID: Content-Type: multipart/alternative; boundary="000000000000e5a16205a049644b" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::233 X-Spam-Score: 0.3 (/) X-Mailman-Approved-At: Sat, 07 Mar 2020 15:40:22 -0500 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.7 (/) --000000000000e5a16205a049644b Content-Type: text/plain; charset="UTF-8" $ echo "object[0])" | sed 's/[\]\[]/./g' object[0]) $ echo "object[0])" | sed 's/[\]]/./g' object[0]) $ echo "object[0])" | sed 's/[\[]/./g' object.0]) $ echo "object[])" | sed 's/[\]\[]/./g' object[]) $ echo "object[])" | sed 's/[\[\]]/./g' object.) --000000000000e5a16205a049644b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
$ echo "object[0])" | sed 's/[\]\[]/./g'=
object[0])
$ echo "object[0])" | sed 's/[\]]/./g'<= br>object[0])
$ echo "object[0])" | sed 's/[\[]/./g'object.0])
$ echo "object[])" | sed 's/[\]\[]/./g'object[])
$ echo "object[])" | sed 's/[\[\]]/./g'object.)

--000000000000e5a16205a049644b-- From unknown Sat Aug 09 01:08:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39978: Weird substitution of square brackets Resent-From: Evangelos Tsagkas Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Sat, 07 Mar 2020 21:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39978 X-GNU-PR-Package: sed X-GNU-PR-Keywords: To: 39978@debbugs.gnu.org X-Debbugs-Original-To: bug-sed@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15836159254959 (code B ref -1); Sat, 07 Mar 2020 21:19:02 +0000 Received: (at submit) by debbugs.gnu.org; 7 Mar 2020 21:18:45 +0000 Received: from localhost ([127.0.0.1]:47661 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jAgqL-0001Hu-4g for submit@debbugs.gnu.org; Sat, 07 Mar 2020 16:18:45 -0500 Received: from lists.gnu.org ([209.51.188.17]:54427) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jAfpl-000884-M3 for submit@debbugs.gnu.org; Sat, 07 Mar 2020 15:14:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45857) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAfpk-0005kt-BO for bug-sed@gnu.org; Sat, 07 Mar 2020 15:14:05 -0500 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,URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAfpj-0003Lv-1U for bug-sed@gnu.org; Sat, 07 Mar 2020 15:14:04 -0500 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]:39851) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jAfpi-0003LY-So for bug-sed@gnu.org; Sat, 07 Mar 2020 15:14:02 -0500 Received: by mail-oi1-x22e.google.com with SMTP id r16so6194604oie.6 for ; Sat, 07 Mar 2020 12:14:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=wzBKOP6QEKv4ujsZh0wt6+Ytqo+d9Urc9NuF75gf7Ek=; b=bF3CQWloXsKlbp/dyeOYH2MSqdmuAEbMpnOxS1mi9ImwQiKxeiiwLJD6CGC6x1PycV ezqABPVip+GIc+1DcxJG7WWwhIAP/WHXHQnBg4gbCFlDKcrFsqj05H0ZZN+/wUJ5h3s5 DbnLk8bss/wK1c2N/qypxDk6SjAS2p92nnDtp7Qz1fILSHA7AndPzpG5nncFEBYzQl+x M+4MZuYMRCSqoBX7sYhaa1OR7v3lDBC2Qzma8dATLVx2uyhiOsJJKecZ/sBI623MNec6 xgDEiX/rLMFhplfL8l4cOdb98k3F6FgsfeCE0n17AUY/ll0HcAK74YnxruIrC1aFBxuN R3FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=wzBKOP6QEKv4ujsZh0wt6+Ytqo+d9Urc9NuF75gf7Ek=; b=DpDET7Qo1wBVxK7Q130cTVbQ7p0umZsJ1JLncvhDSJJiJjkFGtnV8m/Fy9iOTxrQTr xfHAMXgiq+Kj8yixk/+16yDC4hyYGLmRIgj6FQRjZmqEO4GdERlvsMN2kbxdwfBO5Lbo 9PoJOhemSCfNon0iqD3nqwYl6dvjY07jaenpyxOi+JkBPMAglnNaIfm46v6DH9xLtyF7 Xtp1pnigEh83bYHMcrC13DAWmpY1IJfbNTOUDUnxpyrdI8GTxoqfk2ctRZYaUnQfgpeL zxmZumdqdUyw7DfHs22BEMZx5hrdUxj7vtT6jKgkrlCvtZhFGaO1xIJzpDA6NVPawAU6 aJAQ== X-Gm-Message-State: ANhLgQ0irgSuHJSyyXH13RUTQpRxwwIi9AIFU0ReRlVYws5XuPCl26pB 56eZcOcJmjgVT3peilWwFLHpcEdF0ns86t+iL+fElgVafFI= X-Google-Smtp-Source: ADFU+vvEz7CGMFKr9kRmPdmpz7nI/h5boOgF5WiCnllZ/gQcsxcuEolJ0TRHpcFlSu92LrNGwlMN70Tm0NKCnTP6gZE= X-Received: by 2002:aca:1917:: with SMTP id l23mr6903344oii.158.1583612041915; Sat, 07 Mar 2020 12:14:01 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Evangelos Tsagkas Date: Sat, 7 Mar 2020 22:18:41 +0200 Message-ID: Content-Type: multipart/alternative; boundary="00000000000038735a05a0496954" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::22e X-Spam-Score: 0.3 (/) X-Mailman-Approved-At: Sat, 07 Mar 2020 16:18:44 -0500 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.7 (/) --00000000000038735a05a0496954 Content-Type: text/plain; charset="UTF-8" ~$ sed --version sed (GNU sed) 4.8 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later < https://gnu.org/licenses/gpl.html>. 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, Paolo Bonzini, Jim Meyering, and Assaf Gordon. This sed program was built without SELinux support. GNU sed home page: . General help using GNU software: . E-mail bug reports to: . On Sat, Mar 7, 2020 at 10:17 PM Evangelos Tsagkas wrote: > $ echo "object[0])" | sed 's/[\]\[]/./g' > object[0]) > $ echo "object[0])" | sed 's/[\]]/./g' > object[0]) > $ echo "object[0])" | sed 's/[\[]/./g' > object.0]) > $ echo "object[])" | sed 's/[\]\[]/./g' > object[]) > $ echo "object[])" | sed 's/[\[\]]/./g' > object.) > > --00000000000038735a05a0496954 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
~$ sed --version
sed (GNU sed) 4.8
Copyright (C) 202= 0 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or la= ter <https://gnu.org/licen= ses/gpl.html>.
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,
Paolo Bonzini, Jim= Meyering, and Assaf Gordon.

This sed program was built without SELi= nux support.

GNU sed home page: <https://www.gnu.org/software/sed/>.
General help us= ing GNU software: <https://www.= gnu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>.

On Sat, M= ar 7, 2020 at 10:17 PM Evangelos Tsagkas <tsagkase@gmail.com> wrote:
$ echo "object[0])" | = sed 's/[\]\[]/./g'
object[0])
$ echo "object[0])" |= sed 's/[\]]/./g'
object[0])
$ echo "object[0])" | = sed 's/[\[]/./g'
object.0])
$ echo "object[])" | se= d 's/[\]\[]/./g'
object[])
$ echo "object[])" | sed= 's/[\[\]]/./g'
object.)

--00000000000038735a05a0496954-- From unknown Sat Aug 09 01:08:17 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39978: Weird substitution of square brackets Resent-From: Assaf Gordon Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Sat, 07 Mar 2020 22:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39978 X-GNU-PR-Package: sed X-GNU-PR-Keywords: To: Evangelos Tsagkas Cc: 39978@debbugs.gnu.org Received: via spool by 39978-submit@debbugs.gnu.org id=B39978.158362103420746 (code B ref 39978); Sat, 07 Mar 2020 22:44:01 +0000 Received: (at 39978) by debbugs.gnu.org; 7 Mar 2020 22:43:54 +0000 Received: from localhost ([127.0.0.1]:47724 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jAiAk-0005OX-GE for submit@debbugs.gnu.org; Sat, 07 Mar 2020 17:43:54 -0500 Received: from mail-pl1-f170.google.com ([209.85.214.170]:41811) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jAiAi-0005OG-V1; Sat, 07 Mar 2020 17:43:53 -0500 Received: by mail-pl1-f170.google.com with SMTP id t14so2426574plr.8; Sat, 07 Mar 2020 14:43:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=uuJ7R3Pjm8hqaDVey8fycmsM76BVRzhypjC804YVIos=; b=nIp20BoLmkjDtN6MoAn2t6H8tp294/2n3HNHJaQe8Xkji7Qag/C3gfUsI127SLtopp HTc8eD8qTFk3tflfSP9nbvZD7T3W64EYvmdk3SBbj065ruB4ccM0IjvDu8FI15XWy/LT Ie9gZ2aNhpjaA6C3McqEMV0mgZIiYDDwnUbb3Rq+6GU6b7HOeLNw8Y6R2jD3LtBXnIy0 GB9CaM6eUBedOtG5JOhNehxhY7q/IgWDPaD8+Jy6alLA1ReC/v6zDUsdsFPLP/z/Eidx qR/dvLlMvzIFiAp5IIJJyLgObEeNR9+VhX8huKIlz3k45CKbF9wjwRMufhA8sIIdha0C yPTg== 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:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=uuJ7R3Pjm8hqaDVey8fycmsM76BVRzhypjC804YVIos=; b=ihjNypSvLmY0gfghWSLd9mOS7CFIP0UvLTw04rvCqjcg5iQVQ+9MNfrGpOSXrw2U8m A7pJDs1wV/GXnN97qq05cAfSJGq5d/1HdTBTZKOS6IvWHSKTd+tK+Xm1d69gSEGiqIBl /XFwDV/tvgOFRmGUpDE4Jde1q6wFyMAEabmA7zDfn81cEDPKSntLjXmtiTevxbmK7JbE KSp0J1JxO2i6599+YteF/OkrekxQYq7/S7NbzhLUdNBdIrK6J8wjz2+my8ggVzFZdvCX kkh3H6MfX3FIcaP7sN1/kqGhc5EbByiJCwpo470wipGOO1OAxEGHg0iypAtx8E/9Q7Al 5wdA== X-Gm-Message-State: ANhLgQ29Q6YNQpNWswkcaCSjTFQPRSh8n/1HCixey0hWOkKWdFMuwlDK 3mn6v7337/XPcQ4Wp2W3X/hfWMZh X-Google-Smtp-Source: ADFU+vt7jDXs26cqKle31VjNLgTcKjVViMm6a+OCbhVW3L9wgjYZUQ65LDu0r8uEfrpON8aeKzLYWw== X-Received: by 2002:a17:90a:5d97:: with SMTP id t23mr10773415pji.61.1583621026374; Sat, 07 Mar 2020 14:43:46 -0800 (PST) Received: from tomato (moose.housegordon.com. [184.68.105.38]) by smtp.gmail.com with ESMTPSA id k9sm13537126pjo.19.2020.03.07.14.43.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Mar 2020 14:43:45 -0800 (PST) Received: by tomato (Postfix, from userid 1000) id F117A680B16; Sat, 7 Mar 2020 15:43:43 -0700 (MST) Date: Sat, 7 Mar 2020 15:43:43 -0700 From: Assaf Gordon Message-ID: <20200307224343.GA23377@tomato.moose.housegordon.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.11.4 (2019-03-13) X-Spam-Score: 0.0 (/) 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.0 (-) tag 39978 notabug close 39978 stop Hello, The commands you list below are correct and expected. They follow POSIX's basic regular expression's "bracket expression" behavior. Note the following POSIX rules: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03 "9.3.3 - The , , and shall be special except when used in a bracket expression" and "9.3.5(1) - [...] The ( ']' ) shall lose its special meaning and represent itself in a bracket expression if it occurs first in the list [...] Otherwise, it shall terminate the bracket expression" On Sat, Mar 07, 2020 at 10:17:28PM +0200, Evangelos Tsagkas wrote: > $ echo "object[0])" | sed 's/[\]\[]/./g' > object[0]) > $ echo "object[0])" | sed 's/[\]]/./g' > object[0]) > $ echo "object[0])" | sed 's/[\[]/./g' > object.0]) > $ echo "object[])" | sed 's/[\]\[]/./g' > object[]) > $ echo "object[])" | sed 's/[\[\]]/./g' > object.) To illustrate: # in a bracket-expression is literal, not special $ echo '\' | sed 's/[\]/X/' # inside a bracket-expression is literal, not special $ echo '[' | sed 's/[[]/X/' X # Combine the above two rules, and even though this might be # visually confusing, the bracket-expression only matches literal # and , regardless of how many # times they repeat in the bracket expression $ echo '\[' | sed 's/[\[\[\[[\]/X/g' XX # Here - causes the # to become literal, not special: $ echo '[' | sed 's/\[/X/' # appearing without a preceeding *special* # is also literal: $ echo ']' | sed 's/]/X/' X # And thus: $ echo '[]' | sed 's/\[]/X/' X I hope these explain how you got the above results. As such, I'm closing this as "not a bug". Discussion can continue by replying to this thread. regards, - assaf