Использование сценария оболочки для извлечения данных на основе ввода пользователя [закрыто]

Межсимвольный интервал - это атрибут самого шрифта. Если вам нужен другой интервал, вам придется использовать другой шрифт.

1
19.04.2017, 15:10
2 ответа

Вы можете использовать read и sed

read -p "enter an eid: "; sed -n "/$REPLY/ s/.*|\(.*\)/status: \1/p" file

Примечания

  • /$REPLY/ найти строку с пользовательским вводом
  • - n вывести только те строки, которые мы запрашиваем
  • s/old/new заменить old на new
  • |\(.*\) сохранить любые символы после последнего | для ссылки позже с помощью \1
  • p напечатать измененную строку

Чтобы запросить самый новый файл:

#!/bin/bash
for f in *; do
  if [[ "$f" -nt "$newest" ]]; then
    "$f"="$newest"
  fi
done
read -p "enter an eid: "
sed -n "/$REPLY/ s/.*|\(.*\)/status: \1/p" "$newest"

Кредит @terdon за то, что нашел меня эту страницу - потому что мы знаем ls -t | head -n 1 не в порядке

3
27.01.2020, 23:14

Это выполняет синтаксический анализ в sh:

printf 'Enter eid: ' >&2
read query

while IFS="|" read eid location desg status; do
   if [ "$eid" = "$query" ]; then
      printf 'Status is "%s"\n' "$status"
      break
   fi
done <data.in

Предполагается, что ваш файл данных называется data.in.

3
27.01.2020, 23:14

Теги

Похожие вопросы