РЕДАКТИРОВАТЬ: Так как hek2mgl sir упоминается в случае, если вам нужно удалить непрерывные похожие линии, попробуйте следующее.
Допустим, следующим является Input_file:
cat Input_file
chr1 109472560 109472561 -4732 CLCC1
chr1 109472560 109472561 -4732 CLCC1
chr1 109477498 109477499 206 CLCC1
chr1 109477498 109477499 206 CLCC1
chr1 109477498 109477499 206 CLCC1
chr1 109472560 109472561 -4732 CLCC1
chr1 109477498 109477499 206 CLCC1
chr1 109472560 109472561 -4732 CLCC1
Запустите следующий код:
awk 'prev!=$0;{prev=$0}' Input_file
Вывод будет следующим:
chr1 109472560 109472561 -4732 CLCC1
chr1 109477498 109477499 206 CLCC1
chr1 109472560 109472561 -4732 CLCC1
chr1 109477498 109477499 206 CLCC1
chr1 109472560 109472561 -4732 CLCC1
Следующий фрагмент удалит все повторяющиеся строки, но нетолько повторяющиеся строки
awk '!a[$0]++' Input_file
Добавьте > output_file
к вышеприведенной команде, если вы хотите перенести вывод в отдельный файл.
Объяснение: Добавление объяснения для кода выше сейчас.Это только в целях пояснения для запуска кода только вышеупомянутого.
awk '
!a[$0]++ ##Checking condition here if current line is present in array a index or NOT, if not then increase its value by 1.
##So that next time it will make condition as FALSE, since we need to have only unique lines.
##awk works on method of condition and action, so if condition is TRUE it will do some action mentioned by programmer.
##Here I am not mentioning action so by default print of current line will happen, whenever condition is TRUE.
' Input_file ##mentioning Input_file name here.