为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕村9548890 2023-05-02 13:09:26
现在有一个文本文件,每一行都有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
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

这个问题其实非常简单的,看下面的代码就知道了

while read h1 h2 h3 h4 h5 h6 h7 h8 h9 h10; do
    echo $h2
    echo $h3done <"$FILE_NAME"


查看完整回答
反对 回复 2023-05-04
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

cat应该不会把TAB转换成空格的。
你用cat -a 查看一下文件,看看到底是不是TAB。

查看完整回答
反对 回复 2023-05-04
  • 2 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信