Как я могу искать в первом поле каждой строки текстового файла и удалять всю строку, если найдено совпадение - PullRequest
0 голосов
/ 09 мая 2020

Если и после того, как строка найдена в первом поле текстового файла, без учета регистра, вся строка должна быть удалена. Застряли на этом несколько дней. Текстовый файл представляет собой 3 поля, разделенных точкой с запятой.

tput cup 17 0; echo "Enter a valid first name: "
tput cup 17 11; read personfirstName
tput cup 18 4; echo "Accept? (y)es
 or (n)o: "
tput cup 18 27; read Go
   if [ $Go = "y" ]
     then
       sed /$personfirstName/d  $personnelFile > f
         cp f $personnelFile
          rm f
    fi

1 Ответ

0 голосов
/ 09 мая 2020

Некоторые мысли:

  • Если ваша версия sed поддерживает параметр -i, используйте его вместо команд sed / cp / rm.
  • Используйте -e опция для указания команды, которую вы хотите запустить.
  • Используйте двойные кавычки вокруг аргументов.
  • Используйте ваш разделитель, чтобы избежать удаления «Джонни», когда кто-то вводит «Джон».
if [ $Go = "y" ]; then
    sed -i -e "/^$personfirstName;/d" "$personnelFile"
fi
...