如何搜索文本文件每行的第一字段,如果找到匹配项,则删除整行

时间:2020-05-09 16:58:18

标签: bash unix awk sed grep

如果在文本文件的第一个字段中找到该字符串且该字符串不区分大小写,则将删除整行。已经坚持了几天。文本文件是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 :(得分:0)

一些想法:

  • 如果您的sed版本支持-i选项,请使用该选项代替sed / cp / rm命令。
  • 使用-e选项指定要运行的命令。
  • 在参数周围使用双引号。
  • 使用分隔符避免在有人输入“ Jon”时删除“ Jonny”。
if [ $Go = "y" ]; then
    sed -i -e "/^$personfirstName;/d" "$personnelFile"
fi
相关问题