【发布时间】:2015-04-23 19:38:22
【问题描述】:
我需要通过删除所有出现该事件的行来替换文件中的字符串,并将所有这些替换为第一次出现。我有这样的东西:
errorMain="ERROR this is the error"
var1=$( grep "$errorMain" log_verification.log )
errorCount1=$(grep -c "$errorMain" log_verification.log)
countErrors() {
if [ $errorCount1 -gt 10 ] ;
then
replaceFirstOccurrence
fi
}
replaceFirstOccurrence() {
firstOccurrence=$(grep -m 1 "$errorMain" log_verification.log)
echo "the error $firstOccurrence is repeated $errorCount1 times"
sed -i 's/$errorMain/$firstOccurrence/g' log_verification.log > log_without_redundant.log
}
countErrors
我需要将所有出现的内容替换为:
以下错误重复 X 次: ERROR 这是错误
并将其输出到新文件。
有什么想法吗?
编辑
新文件需要与原始文件相同(相同的内容)唯一被替换的行是那些出现的行。
【问题讨论】:
-
考虑编辑您的问题以包含一个小样本文件,其中包括 2 行要处理的数据,1 行应排除的数据。显示您的预期输出。然后展示您编写解决方案的尝试。显示任何错误消息(精确复制/粘贴)。显示失败的输出。祝你好运。