问题: 给定一个制表符分隔的文件,其中包含几列(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
问题: 我到处都在寻找解决方案。
答案 0 :(得分:4)
为什么不只是呢?
cut -f1-3 data.tsv
答案 1 :(得分:1)
如果您只是在寻找解决方案,请使用以下命令:
cut -d$'\t' -f1-3
如果您对这里的标志感到困惑:
-d
=分隔符$'\t'
=寻找制表符转义符-f1-3
=字段号1到3。又名仅显示前3个字。有关更多信息,请点击此处:Cut Command Linux