Vložit znak na pozici znaku číslo x každého řádku souboru
Dobrý den,
potřeboval bych upravit v jednom textovém souboru úplně všechny řádky, ty mají tuto strukturu:
0123456789
0123456789
0123456789
Já chci tento tvar:
012345/6789
012345/6789
012345/6789
Konkrétně jde o rodná čísla, do kterých je potřeba za každý šestý znak dopnit lomítko. Tato data původně pocházejí z jednoho sloupce excelu, ale tam jsem tuto operaci vzdal a jsem otevřen všem možnostem. Nemám problém použít linux či třeba python k tomuto přeformátování textu. Hlavní je pro mě, aby to bylo jednoduché řešení, které prostě za každý 6tý znak doplní to lomítko. Předem díky
Dobrý den,
zde uvádím tři funkční možnosti z mnoha, jak docílit toho, aby se za každý 6tý znak každého řádku souboru vložilo lomítko.
Toto univerzální python řešení načte všechny řádky ze soubor.txt a přidá za každý šestý znak lomítko.
Funkci insert_char() je možné jednoduše upravit na jiný řetězec (str), jiný znak (char) a číselnou pozici (pos).
potřeboval bych upravit v jednom textovém souboru úplně všechny řádky, ty mají tuto strukturu:
0123456789
0123456789
0123456789
Já chci tento tvar:
012345/6789
012345/6789
012345/6789
Konkrétně jde o rodná čísla, do kterých je potřeba za každý šestý znak dopnit lomítko. Tato data původně pocházejí z jednoho sloupce excelu, ale tam jsem tuto operaci vzdal a jsem otevřen všem možnostem. Nemám problém použít linux či třeba python k tomuto přeformátování textu. Hlavní je pro mě, aby to bylo jednoduché řešení, které prostě za každý 6tý znak doplní to lomítko. Předem díky
ODPOVĚĎ
Dobrý den,
zde uvádím tři funkční možnosti z mnoha, jak docílit toho, aby se za každý 6tý znak každého řádku souboru vložilo lomítko.
Linux awk
awk -vFS="" -vOFS="" '{$6=$6"/"}1' soubor.txt
Linux sed
sed 's/.\{6\}/&\//' soubor.txt
Python
Toto univerzální python řešení načte všechny řádky ze soubor.txt a přidá za každý šestý znak lomítko.
def insert_char(str, char, pos):
return str[:pos] + char + str[pos:]
file = open('soubor.txt')
for line in file:
print(insert_char(line, '/', 6))
Funkci insert_char() je možné jednoduše upravit na jiný řetězec (str), jiný znak (char) a číselnou pozici (pos).