ファイル内容の置換を行うrcf
というCLIツールをGoで作りました。
"Replace the contents of the file" でrcf
という名前にしています。
rcf
単にファイル内容を正規表現または文字列そのままで置換するツールです。
sed
の構文をすぐ忘れるのと、WindowsとLinuxで同じ感じで使いたくて作っています。
使い方
入力ファイルまたはフォルダを指定して、置換条件を指定する形です。
Usage: rcf -i INPUT [-r REGEX | -s STRING] -t REPLACEMENT [--escape] [--recursive] [-c CHARSET] [-o OUTPUT | --overwrite] Flags -i, --input string Input file/dir path. -r, --regex string Target regex. -s, --string string Target string. -t, --replacement string Replacement. -e, --escape Enable escape sequence. -R, --recursive Recursively traverse the input dir. -c, --charset string Charset. (default "UTF-8") -o, --output string Output file/dir path. -O, --overwrite Overwrite the input file. -h, --help Help.
下記の例だと、input.txt
を入力ファイルとして、before
という文字をafter
に置き換えて、output.txt
というファイルに出力します。
$ rcf -i input.txt -s before -t after -o output.txt
置換対象の指定は、正規表現(-r
)と文字列(-s
)の2パターンになります。
バイナリファイルに対しても置換できるように、-c
で指定するCharsetとしてbinary
というものを用意しています。
binary
を指定すると、ファイル内容をヘキサ文字にしたうえで置換することができます。
ヘキサ文字はx00
やxFF
といったように先頭にx
を付けた16進数でバイトを指定します。
$ rcf -i input.txt -s x00x01 -t "" -o output.txt -c binary
その他、詳しい利用方法はREADMEをご参照ください。