我编写了一个脚本,从LDAP数据库获取数据并将其写入文件中,每个值在一行中用制表符分隔。然后我尝试将该文件的内容复制并粘贴到Excel中,但它会将每个“列”的制表符分隔内容都放在该行的第一列中,而不是将每个数据列放在Excel文件中自己的行中。行可以正常粘贴。 例如,我们来看这个模拟的第一行。
12121212 [] lastname, firstname [] title [] phone [] manager
[] = 我尝试通过编程方式在我的数据输出中插入制表符
这让我感到困惑,因为我特意制作了一个函数来从我的LDAP搜索结果中删除换行符,并将制表符添加到该列的数据返回末尾。这是addTab函数:
function addTab {
res=' ' # res = "\t\tx"
echo $1 | tr -d '\n'
echo "$res" | tr -d '\n'
这是我如何调用函数的方式(注意,$i来自我用循环迭代对UID数组进行搜索):
addTab `getattrVal $i employeeNumber`
addTab `getattrVal $i employeeType`
addTab `getattrVal $i ou`
addTab `getattrVal $i managerEmployeeNumber`
这里是getattrVal函数的代码:
function getattrVale {
/opt/bin/ldapsearch -QLLLZZH ldap://${VIP}:389/ -b $1 $2 | grep "$2:" |awk '{ print $2 }'
我甚至尝试使用 column 命令生成漂亮的输出列(即 column -t bashCreatedTabFile.txt),但我仍然无法按预期在 Excel 电子表格中粘贴内容。
我意识到可能有更好的方法来完成这个任务,但我认为理解为什么这样做不起作用对我的进步很重要。