Ansible中如何添加含制表符的行或创建类XLS制表符变量?
在Ansible中添加含制表符的行或创建XLS兼容的制表符变量
方法1:直接在Ansible变量中定义制表符
XLS识别的是实际的制表符字符,而非多个空格。你可以通过两种方式在变量中加入制表符:
- 用双引号包裹变量内容,使用
\t转义序列(YAML仅解析双引号内的转义字符):header_value: "Date\tHost Name" - 直接在双引号内输入实际的制表符(按下Tab键):
header_value: "Date Host Name"
定义好变量后,原有的lineinfile模块任务即可正常工作,写入的内容会被XLS识别为两列。
方法2:使用shell/command模块写入制表符内容
如果你更习惯用shell脚本的方式,也可以直接通过shell模块输出带制表符的内容到文件:
- 用
echo -e解析转义字符:- name: Write header log file via shell delegate_to: localhost become: false run_once: yes ansible.builtin.shell: echo -e "Date\tHost Name" > "{{ logfile }}.xls" - 用
printf更可靠(避免不同shell对echo的行为差异):- name: Write header log file via printf delegate_to: localhost become: false run_once: yes ansible.builtin.shell: printf "Date\tHost Name\n" > "{{ logfile }}.xls"
关键说明
之前用8个空格代替制表符无效的核心原因是:XLS仅将**制表符字符(ASCII 9)**视为列分隔符,空格只是普通文本,无法触发列拆分。
内容的提问来源于stack exchange,提问作者Praveen Kumar
相关产品推荐
相关产品推荐

