我的代码:
!grep -n '日{2,}' /content/drive/MyDrive/test.txt
返回结果只有四条:
152: "context": "8月20日,陇南市召开的抗洪救灾新闻发布会通报,截至8月18日24时,此次暴洪泥石流灾害造成陇南市直接经济损失达到81.8亿元
379: "context": "甘肃日报/2013年/8月/5日/第007版攻坚克难抗震抢险救灾凝心聚力重建美好家园灾难面前,挺起不屈的脊梁——陇南市抗击暴洪和地震灾害
497: "context": "崔流和县水利局局长刘路红摸黑冒雨趟着齐胸深的水,深一脚浅一脚地走2公里多路,才赶到楚铺村。此时,市防汛指挥部增援的90名武警官
588: "context": "甘肃经济日报/2020年/8月/25日/第005版要闻救援文县新甘肃·甘肃经济日报记者吴正楠8月以来,文县连续四次出现暴雨、大暴雨天气,其中
但实际文本中符合出现两次以上条件字符的行数远不止四行
使用这个脚本吧,可以把日重复大于2的行全部打印出来
[root@node1 ~]# cat test.sh
#!/bin/bash
while read line # 读取每一行
do
echo $line >/tmp/tmp_result.txt # 每行追加到新文件
num=`awk -F "aa" '{print NF-1}' /tmp/tmp_result.txt` #统计频率
if [ $num -ge 2 ]; #判断
then
echo -e "$line \n" # 如果是特别长的一定要换行
else
echo "list少于2个,不显示" >/dev/null 2>&1
fi
echo "" >/tmp/tmp_result.txt
done < /tmp/result.txt
!grep -n "日/{2,/}" /content/drive/MyDrive/test.txt
加个/
可以使用绝对路径而不是使用相对路径,绝对路径不报错就检查一下代码逻辑是否有问题