Skip to main content
preserve duplicated lines
Source Link
αғsнιη
  • 41.9k
  • 17
  • 75
  • 117

Using GNU awk in paragraph mode and sort the array's keysvalues in string mode then print:

awk -v RS= '{ seen[$0]=1seen[NR]=$0 }
END { PROCINFO["sorted_in"]="@ind_str_asc";PROCINFO["sorted_in"]="@val_str_asc";
      for (block in seen) {print sep block;seen[block]; sep=ORS}
}' infile

Using GNU awk in paragraph mode and sort the array's keys in string mode then print:

awk -v RS= '{ seen[$0]=1 }
END { PROCINFO["sorted_in"]="@ind_str_asc";
      for (block in seen) {print sep block; sep=ORS}
}' infile

Using GNU awk in paragraph mode and sort the array's values in string mode then print:

awk -v RS= '{ seen[NR]=$0 }
END { PROCINFO["sorted_in"]="@val_str_asc";
      for (block in seen) {print sep seen[block]; sep=ORS}
}' infile
Requires GNU awk
Source Link
Kusalananda
  • 355.9k
  • 42
  • 735
  • 1.1k

Using GNU awk in paragraph mode and sort the array's keys in string mode then print:

awk -v RS= '{ seen[$0]=1 }
END { PROCINFO["sorted_in"]="@ind_str_asc";
      for (block in seen) {print sep block; sep=ORS}
}' infile

Using awk in paragraph mode and sort the array's keys in string mode then print:

awk -v RS= '{ seen[$0]=1 }
END { PROCINFO["sorted_in"]="@ind_str_asc";
      for (block in seen) {print sep block; sep=ORS}
}' infile

Using GNU awk in paragraph mode and sort the array's keys in string mode then print:

awk -v RS= '{ seen[$0]=1 }
END { PROCINFO["sorted_in"]="@ind_str_asc";
      for (block in seen) {print sep block; sep=ORS}
}' infile
Source Link
αғsнιη
  • 41.9k
  • 17
  • 75
  • 117

Using awk in paragraph mode and sort the array's keys in string mode then print:

awk -v RS= '{ seen[$0]=1 }
END { PROCINFO["sorted_in"]="@ind_str_asc";
      for (block in seen) {print sep block; sep=ORS}
}' infile