Cómo get el número de línea de un elemento seleccionado de Zenity

¿Puede alguien decirme cómo calcular el número de línea de un elemento seleccionado? Me gustaría tener el número de línea específico para referirme a una subrutina que procesará la misma línea de un file diferente.

#! /bin/bash item=$(zenity --list "Apples" "Peaches" "Pumpkin" "Pie" \ --column="Select your choice" --text="Text above column(s)" --title="My menu") linenumber=x # Formula to calculate the line number of the selected item here echo "You selected: $item which is in line number: $linenumber" 

El resultado deseado es:

 You selected Peaches which is in line number: 2 

Actualizar:

Este es un ejemplo de los artículos que se leen. Usé la fruta en el guión anterior para ilustrar un ejemplo de línea. Este es un ejemplo de los artículos específicos. Como puede ver, parte del text real está duplicado pero en una línea diferente. Cuando el usuario selecciona un elemento, espero que Zenity tenga una opción para mostrar en qué línea se hizo clic. Cada vez que se ejecuta tendrá una list diferente de artículos.

 cairo-dock Desktop XdndCollectionWindowImp unity-launcher unity-panel unity-panel unity-dash Hud Your turn - Play esskwa003 in HneO9CtF • lichess.org - Google Chrome ljames@ubunzeus ljames@ubuntuserver ljames@hera5 site site ljames@ubunzeus launcher - Add Unity Entry for Locally Installed Program - Ask Ubuntu - Google Chrome ljames@ubunzeus eclipse desktop launcher categories - Google Search - Google Chrome launcher - Add Unity Entry for Locally Installed Program - Ask Ubuntu - Google Chrome eclipse MightyText - Google Chrome launcher - Add Unity Entry for Locally Installed Program - Ask Ubuntu - Google Chrome ljames@ubunzeus Inbox - LD James - Mozilla Thunderbird ljames@hera5 ljames@hera5 ljames@ubunzeus ljames@hera5 How to get the line number of a Zenity selected Item - Unix & Linux Stack Exchange - Google Chrome workspace - MyPyDev - ShellTools/SEWork/SEWork/hkrecord.sh - Eclipse - /home/users/l/j/ljames/workspace email - Mozilla Thunderbird command line - Is it possible to control the recording if Audacity is running in the background? - Ask Ubuntu - Google Chrome Bookmark Manager - Google Chrome Formatting Sandbox - Meta Stack Exchange - Google Chrome Apollo III Support - Backing up the Office Computer - Mozilla Thunderbird 

Este es el bloque exacto que tengo para llamar a los datos anteriores:

 #!/bin/bash INPUT=$HOME/infile.txt # IFS=$'\n' item=$(while read l do echo "$l" done <$INPUT|zenity --list --text "sample text " --column "Choose") echo "You selected: [$item] which is in line number: [$linenumber"] 

Solutions Collecting From Web of "Cómo get el número de línea de un elemento seleccionado de Zenity"

Esto funcionó para mí con yad y zenity, y el ID de la columna no está visible en la GUI:

 zenity --list 1 "Apples" 2 "Peaches" 3 "Pumpkin" 4 "Pie" --column="id" \ --column="Select your choice" --hide-column=1 --print-column=1 

Ahora, para lograr lo mismo cuando la input es un file, puede preprocesar el file con awk por ej.
awk '{print NR};1' infile y pasa el resultado a zenity .
Dado que, según la documentation :

Zenity devuelve las inputs en la primera columna de text de las filas seleccionadas a la salida estándar.

su $item solo almacenará la línea no. (que es la input en la primera columna), no el contenido de la línea.
Para get el contenido de la línea, debe procesar el file nuevamente y extraer esa línea según el número de línea. Asi que

 linenumber=$(awk '{print NR};1' infile | zenity --list --column="No" \ --column="Select your choice" --text="Text above column(s)" \ --title="My menu" --hide-column=1) 

entonces

 linecontent=$(sed ${linenumber}'!d;q' infile) 

Así que ahora tiene tanto el número de la línea seleccionada como su contenido guardado en el número de linecontent y el contenido de línea respectivamente.