方法一:消除所有重复行
cat filename | sort | uniq > outfile
mv outfile filename
| 字符将左侧命令的输出作为输入提供给右侧的命令。
cat 命令将文件内容读取到标准输出(屏幕或其他文件)
sort 命令按字母顺序对输出进行排序,这是在使用uniq 之前需要的...
uniq 命令消除相邻的重复值
> outfile 将最后一步的输出写入名为“outfile”的文件
mv 命令用新的数据文件 outfile 替换原始文件
此方法将具有破坏性,因为它会删除任何类型的所有重复行,而不仅仅是您要删除的行。
方法2:删除特定行的所有实例,然后重新添加一次
cat filename | sed 's/command\[check_utc\]\=\/company\/nrpe\/libexec\/check_utc.sh//' > outfile
mv outfile filename
sed 命令允许对特定字符串模式执行字符串替换。此类命令的格式为sed 's/find/replace/',用于在每一行中查找“find”的第一个实例并将其替换为“replace”。为了使它适用于每一行的每个实例,您将“g”添加到末尾,即sed 's/find/replace/g'
\ 字符导致 sed 逐字解释字符串中的特殊字符,否则这些字符会被误读为特殊指令。
上面的命令将完全删除该特定字符串的所有实例(将其替换为空),然后您需要编辑代码并将其重新添加一次
方法3:删除所有实例,然后自动重新添加到文件末尾
cat filename | sed 's/command\[check_utc\]\=\/company\/nrpe\/libexec\/check_utc.sh//' > outfile
mv outfile filename
echo "command[check_utc]=/company/nrpe/libexec/check_utc.sh" >> filename
这与上面的代码相同,但在删除字符串的所有实例后,您使用echo 打印该行并使用>> 将文本附加到文件名内容的末尾