Wine означает "Wine Is Not an Emulator", и вы запрашиваете эмулятор. Существует несколько вариантов (например, Virtualbox, который есть в репозиториях дистрибутива, по крайней мере, для веток debian и arch).
Вы не можете установить Windows через вино и ожидать, что он будет работать правильно. Вместо этого вам нужно виртуализировать систему и установить в ней окна. Virtualbox , Qemu и VMware (платный) - это все варианты, которые могут вас заинтересовать.
Если вы ищете универсальное решение с помощью других инструментов командной строки -, для этого можно использовать Awk
.
var=$'\t\t\tnewcontent'
echo "$var" | awk '{ gsub(/^[\t]+/," ",$0) }1'
Приведенная выше команда заменяет еще одно вхождение Tab одним пробелом, т.е. 2 и аргумент в gsub
. Однако вы можете настроить его, создав необходимое количество пробелов
awk -v n=5 ' BEGIN{ spaces = sprintf("%"n"s"," ") }{ gsub(/^[\t]+/,spaces,$0) }1'
Судя по последнему обновлению, OP хочет заменить количество ведущих вкладок точным количеством найденных пробелов,
awk -F$'\t' '{ spaces = sprintf("%"(NF-1)"s"," "); gsub(/^[\t]+/,spaces,$0) }1'
Логика заключается в установке разделителя полей на \t
, количество ведущих вкладок можно определить, выполнив NF-1
. Определив количество ведущих вкладок, используйте его для создания того же количества пробелов из более раннего метода sprintf()
.
Вы можете увидеть это, проверив hexdump -C
до и после замены
echo "$var" | hexdump -C
00000000 09 09 09 6e 65 77 63 6f 6e 74 65 6e 74 0a |...newcontent.|
0000000e
теперь с заменой
echo "$var" | awk -F$'\t' '{ spaces = sprintf("%"(NF-1)"s"," "); gsub(/^[\t]+/,spaces,$0) }1' | hexdump -C
00000000 20 20 20 6e 65 77 63 6f 6e 74 65 6e 74 0a | newcontent.|
0000000e