From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 13 17:29:20 2025 Received: (at submit) by debbugs.gnu.org; 13 Apr 2025 21:29:20 +0000 Received: from localhost ([127.0.0.1]:44208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u44tD-00044l-KL for submit@debbugs.gnu.org; Sun, 13 Apr 2025 17:29:20 -0400 Received: from lists.gnu.org ([2001:470:142::17]:48858) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u449H-0001Z5-As for submit@debbugs.gnu.org; Sun, 13 Apr 2025 16:41:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u449B-0001iM-Uv for bug-sed@gnu.org; Sun, 13 Apr 2025 16:41:45 -0400 Received: from white.well-typed.com ([2a01:4f8:1c1c:cdb1::1] helo=mail.well-typed.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4499-0005OT-K8 for bug-sed@gnu.org; Sun, 13 Apr 2025 16:41:45 -0400 Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=well-typed.com; s=mail; t=1744576637; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=r8TNqmV4xNHoAnMrQADsL3Uaz45ORFvGbq6pD4SmBkc=; b=GMjfdT+BQm6KwAYEM0vNuVnWSmRC5iRAETxItAoXPGinkySJJuqzcbOncfAGFw+aZfGM7O VzEeyFcanfBT+vw9vk+UAkZvdvPWBRzjPZZBuSsWb7VU0grnNceL3emDGLVxOc/+vs1QO/ bDR4lRMP+AjH3QXOGxKfPJvBe0yadTI= Authentication-Results: ORIGINATING; auth=pass smtp.auth=wolfgang smtp.mailfrom=wolfgang@well-typed.com Subject: GNU sed in POSIX mode sometimes not matching newlines From: Wolfgang Jeltsch To: bug-sed@gnu.org Date: Sun, 13 Apr 2025 23:41:30 +0300 Organization: Well-Typed LLP Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Received-SPF: pass client-ip=2a01:4f8:1c1c:cdb1::1; envelope-from=wolfgang@well-typed.com; helo=mail.well-typed.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Sun, 13 Apr 2025 17:29:18 -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: -0.0 (/) Hi! I=E2=80=99m using GNU sed=C2=A04.9 under Ubuntu 24.04.2, and I think I=E2= =80=99ve found a bug in it. Consider the following shell command: echo 'A B C' | sed -E 'N; N; s/^A\n[[:alpha:]]\n*/XXX/' Executing this results in the following output: XXXC This is what I would expect. However, when I run the same command but with GNU sed in POSIX compatibility mode, by either setting POSIXLY_CORRECT to a non-empty value or inserting the argument `--posix` into the `sed` invocation, then I get the following output: XXX C I cannot see a reason for this to be considered a correct result, and I=E2=80=99m quite sure that it violates the POSIX standard. What=E2=80=99s more, that difference between GNU and POSIX mode does not sh= ow up with slightly simplified examples. Consider the following commands: echo 'B C' | sed -E 'N; s/^[[:alpha:]]\n*/XXX/' echo 'A B C' | sed -E 'N; N; s/^A\nB\n*/XXX/' Both result in the following output, no matter whether POSIX compatibility is requested or not: XXXC This is what I=E2=80=99m considering the correct result. All the best, Wolfgang