Межсимвольный интервал - это атрибут самого шрифта. Если вам нужен другой интервал, вам придется использовать другой шрифт.
Вы можете использовать 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
не в порядке
Это выполняет синтаксический анализ в 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
.