【发布时间】:2021-06-28 22:24:27
【问题描述】:
我有一个包含制表符分隔值和空格的文件,如下所示:
! (desambiguación) http://es.dbpedia.org/resource/!_(desambiguación) 5
! (álbum) http://es.dbpedia.org/resource/!_(álbum_de_Trippie_Redd) 2
!! http://es.dbpedia.org/resource/!! 4
$9.99 http://es.dbpedia.org/resource/$9.99 6
Tomlinson http://es.dbpedia.org/resource/(10108)_Tomlinson 20
102 Miriam http://es.dbpedia.org/resource/(102)_Miriam 2
2003 QQ47 http://es.dbpedia.org/resource/(143649)_2003_QQ47 2
我想提取每一行的最后一个数字:
5
2
4
6
20
2
2
为此,我已经这样做了:
while read line;
do
NUMBER=$(echo $line | cut -f 3 -d ' ')
echo $NUMBER
done < $PAIRCOUNTS_FILE
主要问题是某些行的空格比其他行多,cut 不适用于我使用默认分隔符(制表符)。我不知道为什么,可能是因为我使用的是 WSL。
我尝试了cut 的几个选项,但无论如何都不起作用:
NUMBER=$(echo $line | cut -f 3 -d ' ')
NUMBER=$(echo $line | cut -f 4 -d ' ')
NUMBER=$(echo $line | cut -f 2)
NUMBER=$(echo $line | cut -f 3)
希望你能帮我解决这个问题。提前致谢。
【问题讨论】:
-
您是否真的在
cut命令中将分隔符设置为制表符?从您的帖子来看,它看起来好像被设置为空格。
标签: bash windows-subsystem-for-linux