Replace a string after n semicolon every line

I have a file that is formatted in this way.

a1;b2;c33;d4;e5;e;f;f;f;s
d;ds;d;a;v;b;g;gr;r;rt;fdf
s1;s2;s2;s3;s4;
 
b1;f2;g3;h4;a3c4e;xcsd;fds;
sd2;fs4;fs2;sdf3;
 

I want to replace the value just before the 4th semicolon to empty string, regardless the value, such that it looks like this for every block of data separated by a line

a1;b2;c33;;e5;e;f;f;f;s
d;ds;d;a;v;b;g;gr;r;rt;fdf
s1;s2;s2;s3;s4;
 
b1;f2;g3;;a3c4e;xcsd;fds;
sd2;fs4;fs2;sdf3;
 

I tried using

sed 's/[^*];//4' 

but to no avail. Any ideas?

echo 'a1;b2;c33;d4;e5' | nawk -F';' '{$4=""}1' OFS=';'
OR
echo 'a1;b2;c33;d4;e5' | sed 's/[^;][^;]*;/;/4'
1 Like
a="a1;b1;c1;d11;e1"; echo $1 | sed 's/[a-z0-9]*;/;/4'
1 Like
# echo 'a1;b2;c33;d4;e5' | sed 's/[^;]*;/;/4'
a1;b2;c33;;e5
 
# echo 'a1;b2;c33;d4;e5' | sed 's/\(.*\)[a-z][0-9]*;\([a-z0-9]*\)*$/\1;\2/'
a1;b2;c33;;e5