BOM is nothing more than a nuisance. Detecting and removing it is plain simple. There's a utility called
bomstrip that pretty much does what is says and there's the one-liner AWK implementation that you find on stackoverflow (I've added whitespaces for better readability):
awk '{ if (NR == 1) sub(/^\xef\xbb\xbf/, ""); print }' INFILE > OUTFILE
Or a sed version (replaces in place):
sed -i -e '1s/^\xEF\xBB\xBF//' FILE
To do this (or just simply detect BOM) recursively in a dir, you'll find tons of ideas
in this other stackoverflow article.
For recursively detecting files with a BOM, I prefer this one:
find . -type f -print0 | xargs -0r awk '/^\xEF\xBB\xBF/ {print FILENAME} {nextfile}'
To recursively remove BOM, you could use something like this:
find . -type f -exec sed -i -e '1s/^\xEF\xBB\xBF//' {} \;
Or a slightly safer variant:
find . -type f -exec sed -i.bak -e '1s/^\xEF\xBB\xBF//' {} \; -exec rm '{}.bak' \;
Recent comments
2 years 21 weeks ago
3 years 43 weeks ago
3 years 43 weeks ago
3 years 45 weeks ago
3 years 46 weeks ago
4 years 4 days ago
4 years 4 days ago
4 years 6 days ago
4 years 1 week ago
4 years 1 week ago