我用的tail+head效率非常非常低,所以想问问大家有没有好的办法。

现在有一个文本文件,每一行都有10个字段,每个字段之间用TAB隔开,我想在shell中通过cat每read一行再awk -F" "得到每个字段的值。但是文件内容经过cat之后,就自动把TAB转换成空格了,导致awk -F" "的时候得不到我想要的变量.

有没有什么办法能阻止cat修改原文本内容,或者有其他的替代方法么?

#!/bin/kshwhile [ "$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
慕村9548890
浏览 264回答 2
2回答

慕码人8056858

这个问题其实非常简单的,看下面的代码就知道了while&nbsp;read&nbsp;h1&nbsp;h2&nbsp;h3&nbsp;h4&nbsp;h5&nbsp;h6&nbsp;h7&nbsp;h8&nbsp;h9&nbsp;h10;&nbsp;do &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$h2 &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$h3done&nbsp;<"$FILE_NAME"

慕桂英4014372

cat应该不会把TAB转换成空格的。你用cat -a 查看一下文件,看看到底是不是TAB。
打开App,查看更多内容
随时随地看视频慕课网APP