【发布时间】:2017-08-03 13:14:56
【问题描述】:
我创建了一个脚本来从 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 电子表格中粘贴所需的内容。
我意识到可能有更好的方法可以做到这一点,但我认为理解为什么这不起作用对我的进步很重要。
【问题讨论】:
-
如果我理解你的问题.. 不。我只是将标准输出写入文件,然后打开文件并复制文件内容并粘贴到 excel 文件中。所以我的假设是我应该使用包含的标签复制所有内容。但似乎标签只是空格..
-
它将每一列的所有内容放在该行的第一列中的一行中。我会用一个例子来更新帖子。
-
“od -xc bashCreatedTabFile.txt”是否在预期的地方显示制表符和换行符?此外,如果您尝试导入 txt 文件(而不是剪切和粘贴),它是否正确检测到列分隔符?您也可以尝试粘贴到一个新的文本文件中,然后查看它是否正确(这是 Windows 吗?也许剪切和粘贴正在将制表符转换为空格?)
-
我不确定在使用 od -xc file 命令时我在看什么,但我猜它不对。无法真正将输出粘贴到此评论中。