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).

Komentáře

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

Související obsah

linux

bash

terminal

sed

awk

python

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.