Vložit znak na pozici znaku číslo x každého řádku souboru

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

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).
Jak se ti článek líbil?

Komentáře (0)

Přidat komentář