シェルスクリプトを使用したユーザー入力に基づいたデータの抽出

シェルスクリプトを使用したユーザー入力に基づいたデータの抽出
eid|location|desg|status
001|india|hr|active
002|delhi|marketing|inactive
003|hyderabad|sales|active
004|Bangalore|admin|inactive

データ型は上記の通り、区切り文字は「|」です。プロンプトはeidを要求し、ステータスをアクティブまたは非アクティブとしてマークする必要があります。

please enter eid: 001
status is : active

ベストアンサー1

あなたは使用することができreadますsed

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

ノート

  • /$REPLY/ユーザー入力を含む行を探す
  • -n私たちが要求した行だけを印刷してください。
  • s/old/newold使用。 。 。交換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"

~に帰属@テデン私を探そうこのページ- 私たちはls -t | head -n 1それがうまくいかないことを知っているので

おすすめ記事