Как мне выполнить программу на C из шеллкода?

Использование GNU sed (в Linux или Cygwin):

# Removing BOM from all text files in current directory:
sed -i '1 s/^\xef\xbb\xbf//' *.txt

В FreeBSD:

sed -i .bak '1 s/^\xef\xbb\xbf//' *.txt

Преимущество использования GNU или FreeBSD sed: -i означает «на месте» и будет обновлять файлы без необходимости перенаправления или странных трюков.

На Mac:

Это решение awk в другом ответе works , но команда sed выше не работает. По крайней мере, в документации Mac (Sierra) sed не упоминается поддержка шестнадцатеричного экранирования ala \xef.

Аналогичный трюк может быть достигнут с любой программой путем подключения к инструменту sponge из moreutils :

awk '…' INFILE | sponge INFILE

0
задан WCKennedays 25 March 2019 в 12:22
поделиться