如何逐行读取并将文本与下一行匹配?

如何逐行读取并将文本与下一行匹配?

逐行读取文件数据并将该行与下一行匹配,如果匹配则将该行保存在 uniqe.txt 文件中。

答案1

你可以用一个简单的for-loop

#!/bin/bash

mapfile -t < text.txt
for ((a=0,b=1; $b<${#MAPFILE[@]}; a++,b++)); do
     [[ ${MAPFILE[$a]} = ${MAPFILE[$b]} ]] && echo ${MAPFILE[$a]}
done > unique.txt

答案2

不确定“连续重复的行”是否是您的关键问题。如果不是,那么您只需要使用 Linux 命令 uniq 即可消除文件中的重复行:

uniq -u inputfile.txt > uniqe.txt

但是,如果您只想消除连续的重复项,则可以使用 awk:

awk 'NR == 1 {a=$0; print}  a!=$0 {a=$0; print}' inputfile > uniqe.txt

相关内容