UNIX按选项卡剪切命令

时间:2018-10-19 16:14:29

标签: bash unix cut

问题: 给定一个制表符分隔的文件,其中包含几列(tsv格式),请打印前三个字段。

输入 制表符分隔的带有ASCII文本的文件

输出: 在inpu打印的第三个字段中,每行包含N行。

我的代码:

while read line; 
do
    echo $line | cut -f-3
done

我的输出:

1 New York, New York[10] 8,244,910 1 New York-Northern New Jersey-Long Island, NY-NJ-PA MSA 19,015,900 1 New York-Newark-Bridgeport, NY-NJ-CT-PA CSA 22,214,083
2 Los Angeles, California 3,819,702 2 Los Angeles-Long Beach-Santa Ana, CA MSA 12,944,801 2 Los Angeles-Long Beach-Riverside, CA CSA 18,081,569
3 Chicago, Illinois 2,707,120 3 Chicago-Joliet-Naperville, IL-IN-WI MSA 9,504,753 3 Chicago-Naperville-Michigan City, IL-IN-WI CSA 9,729,825
4 Houston, Texas 2,145,146 4 Dallas-Fort Worth-Arlington, TX MSA 6,526,548 4 Washington-Baltimore-Northern Virginia, DC-MD-VA-WV CSA 8,718,083
5 Philadelphia, Pennsylvania[11] 1,536,471 5 Houston-Sugar Land-Baytown, TX MSA 6,086,538 5 Boston-Worcester-Manchester, MA-RI-NH CSA 7,601,061

问题:  我到处都在寻找解决方案。

2 个答案:

答案 0 :(得分:4)

为什么不只是呢?

cut -f1-3 data.tsv

答案 1 :(得分:1)

如果您只是在寻找解决方案,请使用以下命令:   cut -d$'\t' -f1-3

如果您对这里的标志感到困惑:

  • -d =分隔符
  • $'\t' =寻找制表符转义符
  • -f1-3 =字段号1到3。又名仅显示前3个字。

有关更多信息,请点击此处:Cut Command Linux