acme/bin/s2t
2017-08-19 18:08:56 +03:00

35 lines
523 B
Bash
Executable file

#!/usr/bin/env bash
awk -v n_spaces="$1" '
BEGIN {
tab = " "
space = " "
if (n_spaces < 1)
n_spaces = 4
}
function spaces_to_tabs(line) {
n_leading_spaces = 0
for (i = 1; i <= length(line); i += 1) {
if (substr(line, i, 1) != space)
break
n_leading_spaces += 1
}
if ( (0 < n_leading_spaces) && (n_leading_spaces < n_spaces) )
n_tabs = 1
else
n_tabs = int(n_leading_spaces / n_spaces)
tabs = ""
while (n_tabs--)
tabs = tabs tab
return tabs substr(line, i)
}
{ print spaces_to_tabs($0) }
'