2017-08-19 17:38:08 +03:00
|
|
|
#!/usr/bin/env bash
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 17:38:08 +03:00
|
|
|
awk -v n_spaces="$1" '
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 17:38:08 +03:00
|
|
|
BEGIN {
|
|
|
|
|
tab = " "
|
|
|
|
|
space = " "
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 17:38:08 +03:00
|
|
|
if (n_spaces < 1) {
|
|
|
|
|
n_spaces = 4
|
|
|
|
|
}
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 17:38:08 +03:00
|
|
|
spaces_per_tab = ""
|
|
|
|
|
for (i = 1; i <= n_spaces; i += 1) {
|
|
|
|
|
spaces_per_tab = spaces_per_tab space
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-01-26 19:29:57 +03:00
|
|
|
|
2017-08-19 17:38:08 +03:00
|
|
|
function spaces_for_n_tabs(n) {
|
|
|
|
|
spaces = ""
|
|
|
|
|
while (n--) {
|
|
|
|
|
spaces = spaces spaces_per_tab
|
|
|
|
|
}
|
|
|
|
|
return spaces
|
|
|
|
|
}
|
2017-08-16 23:43:09 +03:00
|
|
|
|
2017-08-19 17:38:08 +03:00
|
|
|
function tabs_to_spaces(line) {
|
|
|
|
|
n_tabs = 0
|
|
|
|
|
for (i = 1; i <= length(line); i += 1) {
|
|
|
|
|
if (substr(line, i, 1) != tab) {
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
n_tabs += 1
|
|
|
|
|
}
|
|
|
|
|
return spaces_for_n_tabs(n_tabs) substr(line, i)
|
|
|
|
|
}
|
2017-08-16 23:43:09 +03:00
|
|
|
|
2017-08-19 17:38:08 +03:00
|
|
|
{
|
|
|
|
|
print tabs_to_spaces($0)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
'
|