From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id 892712166F for ; Sat, 20 Apr 2024 09:44:07 +0200 (CEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1713599047; b=XdCkyoO6BxTePbqkHxHXzkaSAJz8GWD6pNRAaT2ECipvLCLFek0coi0p32PcuvNsuzP2g07IeX utRZXXSuvqpbJtX1Yl/JaBfvmnowd08ivA0X/MD4qm6QSsUZYMMwrDc72xdqrRvXyvb0VACoJ8 93VJcT6MTaDLefrJSi6S/UajxpveyQww5ZIOtjdvSMvuzDmrZkPM7+1fIFaAYM7wpwHapYrBn3 vbgI+J9BlB08a9PDz76DO1Gv6LXkV/2BJH7So1dfYEhzJZROnYful/IOZaB3HyNNYcNtk133Vy jTGj/vTmC90Bn5xJG8fbboZQcCSgqQDvZC/9gfPcE4XPhw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lj1-f178.google.com) smtp.remote-ip=209.85.208.178; dkim=pass header.d=gmail.com header.s=20230601 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1713599047; bh=YImoKSCWl2bgXjwqCXmGVENybv0uZt/el9MXdDvJngM=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:Cc:To:Subject: Message-ID:Date:From:In-Reply-To:References:MIME-Version:DKIM-Signature: DKIM-Signature; b=b1dfS19D+/pqrKfuaLTM77rjO2xKHKyLzoecYUUGRCCp2EQ7uZjlzT9cD2sK5pRWnH8iSDz2ii XEgYymy/9weaO34LiiB3EGjI2nFVV1xXgj/d8KpvEdVSPEYBVIi/ikWZbXDm0dZ+GNPqjmNLk4 JlcIVbU1ZB5jOFrZFpPah/i5Z2yotoKvHCHhDidpoC0SpdS0QppiL70NgfzAxc+Oz3fy4bRxzz FdrfMzLoJrjh00t1ccao3itJCtNihiQd8usEEkEyONZJgHrdHW06Vv5Cd3MwxbFdlBLRsC4/aM GHo/Jg0Yj4s9RIfEx++8J6yfnmvqYLlgjn7wLiiWK2Y+Rw==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=v8x+33yHKe04CykFrIsQpLqayor3vJBzpD1xpPOFrwc=; b=Z8JF3k23BJdr3t5LrESehwh3X8 P0VAlzGM//qTRUU6Y2P7bRJIWCBi6qFmRUmywcSxBd+bCI+JMciwPbx2xzrjPDTwlh60LxhoHB6WO tJdjwamm4qA8XLJsXCXrpSUwWh2xevV9APQyY24+PF70sLgdcRwdSm13uEnspPALKSnXShFCeZM2O Zh0I8NcJZ+j8f+kpzxCrOBtH6jVNJeaAFRy/3o89rC8kE42yuGRWThk4hljM4Adab0zK23Z5MyDJN xYXWBsf7v1vGTzu5SOSC17Ve73Gu/4aucV0bpkz6XTB5DLesedn0ffOcb1koVUqHZiY2kWoE50t5Z F/Yh7kKA==; Received: by zero.zsh.org with local id 1ry5OI-000DzF-By; Sat, 20 Apr 2024 07:44:06 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lj1-f178.google.com) smtp.remote-ip=209.85.208.178; dkim=pass header.d=gmail.com header.s=20230601 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lj1-f178.google.com ([209.85.208.178]:58766) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1ry5Mk-000D3Y-Kq; Sat, 20 Apr 2024 07:42:32 +0000 Received: by mail-lj1-f178.google.com with SMTP id 38308e7fff4ca-2da84f93c99so34023281fa.1 for ; Sat, 20 Apr 2024 00:42:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713598949; x=1714203749; darn=zsh.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=v8x+33yHKe04CykFrIsQpLqayor3vJBzpD1xpPOFrwc=; b=gzentZA2xWBPXIvioyB+1JLD6lQhcDxB8yRJLiuK1dftgi5Z+kD+hvSUZIPcmFUFqy zPpm847lSQd43yYKUFCkbxZp1G+zWErFvo/HG0shdM3culXGoq2dDONn1F3+z+qaI0B9 3IGopLlxlZ0EuTA75EbP7zqh3cg+xoOL9fjxSJMydbMYUT7BLAGBGD3WHATMjfM15Vab cuObQhCs/bXnjgrjUPH8JUN8ycA78Izj4J0RnvDGn1BPFkkaN++YweVVg+ER8IfNVo15 xrd16E2S/6qdXNBHqVu0BsKKKlJwOkM66pK72MOTq8mLXqklXe7NtJSvyZecLDYFbODU KDhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713598949; x=1714203749; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=v8x+33yHKe04CykFrIsQpLqayor3vJBzpD1xpPOFrwc=; b=NK/S6Cd/TyqKzyzrGKtSqnQXemXsBxxIq1q4C6Jv0xv037Accpr8PynY3JkTvk+Z8G 9oukaPsqJBDuAvZkEWFUqdgSJF6vkvcfxBa4bU7gBqP4ZnGwxAEC6ApBkJMhVKro+6T8 LUPS8fdcoDF/lbuHJRv0odEcSbwdB60x7fEhyRtM46drzEgJQWv5iPIOUbflMSpcZGcz JZBGoSFkDFzpSRF/w/uYIAdMjYMcSn54Hd3GYGyNBmKSUe8bCk0ttD97DlJ9dPFZvyYb kZdGp8erUrHi9HiOwGRpJYYiEAq80tCPugfSVuiG9bVO768rSidZpNVC/hm0UXin+9Hl P7NQ== X-Gm-Message-State: AOJu0YzoT37gfx9O7iwSG6IIMnP/KJQWBZlEXV/dSfSzeod9VuXv/J1r 2w26SvMx8YjlfAoiia7UFI7wE2Orl1ewQSqh918YRPDjSEE6YVWlOkWbD40R5pC/dq6E4CPOqii /YWLWfmlkOqUJwDqgPCuqjWn+ung= X-Google-Smtp-Source: AGHT+IH47tChOL20i921sco0mdPapSY4naUmAfli6VsoJA4oW2B0Q8PlHz3i7ERaEbZP19FA+RXnjZMPG+1HIts+/6g= X-Received: by 2002:a2e:870b:0:b0:2da:b2c3:ba3b with SMTP id m11-20020a2e870b000000b002dab2c3ba3bmr3374232lji.24.1713598949073; Sat, 20 Apr 2024 00:42:29 -0700 (PDT) MIME-Version: 1.0 References: <53fab6be-26d7-4de5-844f-ffc295d9a494@eastlink.ca> In-Reply-To: <53fab6be-26d7-4de5-844f-ffc295d9a494@eastlink.ca> From: Roman Perepelitsa Date: Sat, 20 Apr 2024 11:42:15 +0400 Message-ID: Subject: Re: optimal expansions? To: Ray Andrews Cc: Zsh Users Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 29842 Archived-At: X-Loop: zsh-users@zsh.org Errors-To: zsh-users-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-users-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: On Fri, Apr 19, 2024 at 11:22=E2=80=AFPM Ray Andrews wrote: > > Script: > > grn=3D$'\e[32;1m' > nrm=3D$'\e[0m' > > var=3D( "${(@f)$(apt-file search $1)}" ) > targ=3D > var2=3D() > > for ((i=3D1; i<=3D$#var; i++ )); do > if [[ "$targ" !=3D "${${=3Dvar[i]}[1]}" ]]; then > targ=3D"${${=3Dvar[i]}[1]}" > var2+=3D"\n${grn}${${=3Dvar[i]}[1]}${nrm}" # Copy first word = of line. > fi > var2+=3D"${${=3Dvar[i]}[2,-1]}" # Copy the rest of the line no ma= tter how many words. > done > > print -l "$var2[@]" I'd do it like this: #!/usr/bin/env zsh emulate zsh -o no_unset -o pipe_fail -o err_exit () { local last_pkg pkg file apt-file search "$1" | while read -r pkg file; do if [[ $pkg !=3D $last_pkg ]]; then [[ -n $last_pkg ]] && print last_pkg=3D$pkg print -P "%B%2F${pkg//\%/%%}%f%b" fi print -r -- $file done } "$@" This implementation fixes a couple of bugs in addition to those mentioned by Lawrence: it gets rid of the empty line at start of the output, and leaves whitespace in file names unchanged. Roman.