元ネタです qiita.com
別解編
ということで、私も試してみました。
フィルター + ansibleアドホックコマンドでワンライナー編
$ cat before_number.txt 001010101010101010010101 111000101010100111010011 100001010100001010101010 110101010101010010101010 101010100101010101010000 111111100000111010000000
$ ansible localhost -m copy -a "dest=after_number.txt content={{ lookup('file', 'before_number.txt') | replace('0', '_') | replace('1', '0') | replace('_', '1')}}{{'\n'}}"
localhost | CHANGED => {
"changed": true,
"checksum": "39ba8f9887f06100e23a499bed1603bb3731ad05",
"dest": "./after_number.txt",
"gid": 1000,
"group": "zaki",
"md5sum": "78964bbf4925ebd8a66cd4abbf5c14b8",
"mode": "0664",
"owner": "zaki",
"secontext": "unconfined_u:object_r:user_home_t:s0",
"size": 150,
"src": "/home/zaki/.ansible/tmp/ansible-tmp-1576710586.73-146675830149952/source",
"state": "file",
"uid": 1000
}
$ cat after_number.txt 110101010101010101101010 000111010101011000101100 011110101011110101010101 001010101010101101010101 010101011010101010101111 000000011111000101111111
うまくいってるかな?
regex_replaceで結果をintにして'+1 %2'とかすればいけると思ったけど、'\1'の扱いが難しく、結局replaceフィルターになりました。
あと最後の{{'\n'}}がないと、改行が消えてしまうので苦肉の策。
詳しく調べたいけど電車の時間が…笑