unix shell的cat命令如何不过滤TAB字符?
现在有一个文本文件,每一行都有10个字段,每个字段之间用TAB隔开,我想在shell中通过cat每read一行再awk -F" "得到每个字段的值。但是文件内容经过cat之后,就自动把TAB转换成空格了,导致awk -F" "的时候得不到我想要的变量.
有没有什么办法能阻止cat修改原文本内容,或者有其他的替代方法么?
我用的tail+head效率非常非常低,所以想问问大家有没有好的办法。
#!/bin/ksh
while [ "$LINE_COUNT" -gt 1 ]
do
tail -$LINE_COUNT $FILE_NAME | head -n1 | awk -F" " '{print
$0}'|\
read h1 h2 h3 h4 h5 h6 h7 h8 h9 h10
echo $h2
echo $h3
((LINE_COUNT=LINE_COUNT-1))
done
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个问题其实非常简单的,看下面的代码就知道了
cat应该不会把TAB转换成空格的。
你用cat -a 查看一下文件,看看到底是不是TAB。