我创建了一个脚本来从LDAP数据库中获取数据并将其写入一个文件,其中每个值都由制表符分隔。然后我尝试将该文件的内容复制并粘贴到excel,但是它将每个“列”的所有制表符分隔的内容放在该行的第一列的一行中,而不是将每列数据放在它自己的行中在excel文件中。行好贴。 例如,让我们把这个模拟第一行
function addTab {
res=' ' # res = "\t\tx"
echo $1 | tr -d '\n'
echo "$res" | tr -d '\n'
[] =我试图以编程方式在我的数据输出中插入一个标签
这让我感到困惑,因为我故意疯狂一个从我的ldap搜索结果中删除新行的函数,并在该列的数据返回结尾添加一个制表符。这是addTab函数:
addTab `getattrVal $i employeeNumber`
addTab `getattrVal $i employeeType`
addTab `getattrVal $i ou`
addTab `getattrVal $i managerEmployeeNumber`
}
这就是我调用函数的方法(注意$ i来自我用来通过循环迭代搜索的UID数组):
function getattrVale {
/opt/bin/ldapsearch -QLLLZZH ldap://${VIP}:389/ -b $1 $2 | grep "$2:" |awk '{ print $2 }'
这是getattrVal函数的代码
nf
}
我甚至尝试使用column命令生成漂亮甚至输出的列(即列-t bashCreatedTabFile.txt),但我仍然无法在Excel电子表格中粘贴所需的内容。
我意识到有更好的方法可以做到这一点,但我认为理解为什么这不起作用对我的进步很重要。
答案 0 :(得分:1)
我遇到了同样的问题。这不是最好的解决方案,但确实有效。
将分隔符更改为逗号(,
)。像往常一样复制文本并粘贴到Excel中。它可能仍然是一列。突出显示该列,转到数据> Excel中的列文本。
确保数据类型为“分隔符”,并选择“逗号”作为分隔符。我不确定为什么,但同样的事情似乎与标签无关。
http://www.wikihow.com/Copy-Paste-Tab-Delimited-Text-Into-Excel
答案 1 :(得分:0)
尝试使用表格的html输出。
使用
print(tabulate(table, headers, tablefmt="html"))
<table>
<tbody>
<tr><th>item </th><th style="text-align: right;"> qty</th></tr>
<tr><td>spam </td><td style="text-align: right;"> 42</td></tr>
<tr><td>eggs </td><td style="text-align: right;"> 451</td></tr>
<tr><td>bacon </td><td style="text-align: right;"> 0</td></tr>
</tbody>
</table>