2017-08-19 18:08:56 +03:00
|
|
|
#!/usr/bin/env bash
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 18:08:56 +03:00
|
|
|
awk -v n_spaces="$1" '
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 18:08:56 +03:00
|
|
|
BEGIN {
|
|
|
|
|
tab = " "
|
|
|
|
|
space = " "
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 18:08:56 +03:00
|
|
|
if (n_spaces < 1)
|
|
|
|
|
n_spaces = 4
|
|
|
|
|
}
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 18:08:56 +03:00
|
|
|
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
|
|
|
|
|
}
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 18:08:56 +03:00
|
|
|
if ( (0 < n_leading_spaces) && (n_leading_spaces < n_spaces) )
|
|
|
|
|
n_tabs = 1
|
|
|
|
|
else
|
|
|
|
|
n_tabs = int(n_leading_spaces / n_spaces)
|
2017-08-17 01:04:01 +03:00
|
|
|
|
2017-08-19 18:08:56 +03:00
|
|
|
tabs = ""
|
|
|
|
|
while (n_tabs--)
|
|
|
|
|
tabs = tabs tab
|
2017-08-17 01:04:01 +03:00
|
|
|
|
2017-08-19 18:08:56 +03:00
|
|
|
return tabs substr(line, i)
|
|
|
|
|
}
|
2017-08-17 01:04:01 +03:00
|
|
|
|
2017-08-19 18:08:56 +03:00
|
|
|
{ print spaces_to_tabs($0) }
|
|
|
|
|
|
|
|
|
|
'
|