Используя ansible
, вы запускаете все свои сценарии удаленно, поэтому у вас будет файл a.txt
на каждом сервере.
Я мог бы предложить следующие варианты:
Измените свой сценарий для печати результатов, чтобы весь вывод был запущен ansible
, а затем проанализировал этот вывод.
Используйте модуль ansible fetch для получения всех a.txt
после запуска скриптов, например: ansible test -m fetch -a "src = a.txt dest = out / "
Используйте модуль ansible setup для получения имен хостов и IP-адресов, например: ansible test -m setup -a 'filter = ansible_hostname'
и более подробную информацию о ] http://docs.ansible.com/ansible/setup_module.html
направьте файл через xxd
, чтобы увидеть шестнадцатеричный вывод рядом с ascii, это позволит вам увидеть, есть ли дополнительные символы, которые вы не видны или не печатаются.
$ cat file
one and two
$ cat file | wc
1 3 18
$ cat file | xxd
00000000: 6f6e 65e2 808f 2061 6e64 20e2 808f 7477 one... and ...tw
00000010: 6f0a o.
wc
показывает на 3 символа больше, потому что ваш примерный файл содержит необычный апостроф Unicode '
(скорее всего, потому что вы скопировали содержимое из браузера или текстового редактора):
$ cat file
Amy looked at her watch. He was late. The sun was setting but Jake didn’t care.
$ wc file
1 16 82 file
С простым апострофом ASCII '
:
$ cat file2
Amy looked at her watch. He was late. The sun was setting but Jake didn't care.
$ wc file
1 16 80 file2
wc
по умолчанию отображает количество байтов на руководство :
перевод строки, количество слов и байтов для каждого файла
для подсчета символов можно использовать аргумент -m
:
$ cat file
Amy looked at her watch. He was late. The sun was setting but Jake didn’t care.
$ wc -m file
80 file.txt
wc
считает байты, а не символы. Если вы хотите считать символы, вам следует использовать опцию -m
:
cat > file
Amy looked at her watch. He was late. The sun was setting but Jake didn’t care.
wc -l -w -m file
1 16 80 file
Оставшийся "лишний символ" - это действительно новая строка в конце файла.