Find && Gawk

I have several of the same file names(facts) in different directories that are "|" pipe delimited and are like such:

xxx.xxx.xxx.xx1|blah|a|host|FQDN|domain||extra stuff blah1 blah2 host
xxx.xxx.xxx.xx2|blah|a|host|FQDN|domain||extra stuff blah1 blah2 host
xxx.xxx.xxx.xx3|blah|a|host|FQDN|domain||extra stuff blah1 blah2 host
xxx.xxx.xxx.xx3|blah|a|host|FQDN|domain||extra stuff blah1 blah2 host

I have a need to only remove only the word "host" from the fourth field to produce:

xxx.xxx.xxx.xx1|blah|a||FQDN|domain||extra stuff blah1 blah2 host
xxx.xxx.xxx.xx2|blah|a||FQDN|domain||extra stuff blah1 blah2 host
xxx.xxx.xxx.xx3|blah|a||FQDN|domain||extra stuff blah1 blah2 host
xxx.xxx.xxx.xx3|blah|a||FQDN|domain||extra stuff blah1 blah2 host

This appears to work:

find results/ -iname 'host' -print0|xargs -0 awk -F\| '$4 ~/host/'|sed 's/host//'
xxx.xxx.xxx.xx1|blah|a||FQDN|domain||extra stuff blah1 blah2 host
xxx.xxx.xxx.xx2|blah|a||FQDN|domain||extra stuff blah1 blah2 host
xxx.xxx.xxx.xx3|blah|a||FQDN|domain||extra stuff blah1 blah2 host
xxx.xxx.xxx.xx3|blah|a||FQDN|domain||extra stuff blah1 blah2 host

but when I attempt to implement it using the "i" in sed, I get:

find results/ -iname 'facts' -print0|xargs -0 awk -F\| '$4 ~/host/'|sed -i 's/host//'
sed: no input files
xargs: awk: terminated by signal 13

I have tried several different variation using grep

grep -ir  '*' results/*/facts|gawk -F '|' '{IGNORECASE=1;} ($4) ~/host/ {print $0}'|sed -i 's/host//'

doesnt find anything. ???

Do you have read/write access to the files and the directories? sed -i writes to a temporary file behind the scenes.

thank you for you reply. I made a variation but essentially the same thing with the following output using sudo:

sudo find . -iname 'facts' -print0 | sudo xargs -0 gawk -F '|' '{IGNORECASE=1;} ($4)~/host/ {print $0}'| sudo xargs sed 's/host//
sed: can't read xxx.xxx.xxx.xx1|blah|a|host|FQDN|domain||extra stuff blah1 blah2 host
sed: can't read xxx.xxx.xxx.xx2|blah|a|host|FQDN|domain||extra stuff blah1 blah2 host
sed: can't read xxx.xxx.xxx.xx3|blah|a|host|FQDN|domain||extra stuff blah1 blah2 host
sed: can't read xxx.xxx.xxx.xx3|blah|a|host|FQDN|domain||extra stuff blah1 blah2 host

---------- Post updated at 04:03 PM ---------- Previous update was at 11:41 AM ----------

I end up finding out that it was a single file that had just those entries and simply used this one-liner to complete the job:

gawk -F '|' -v OFS='|' '{IGNORECASE=1;} {if ($4 ~/host/) $4=""; print $0}' <facts> facts.test

mission complete.