我有以下数据文件:
136110828724515000007700877
137110904734015000007700877
138110911724215000007700877
127110626724515000007700871
127110626726015000007700871
131110724724515000007700871
134110814725015000007700871
134110814734015000007700871
104110122726027000001810072
107110208724527000002900000
我想提取第 3 列的值,即 6787714447 的值。 我尝试使用:-
awk "print $3" <filename>
但是没有用。我应该改用什么?
最佳答案
cut
是一个更好的工作:
$ cut -c 3 < file
6
7
8
7
7
1
4
4
4
7
根据man cut
:
-c, --characters=LIST
select only these characters
为了使它们全部出现在同一行中,管道 tr -d '\n'
:
$ cut -c 3 < file | tr -d '\n'
6787714447
甚至 sed
在末尾有新行:
$ cut -c 3 < file | tr -d '\n' | sed 's/$/\n/'
6787714447
与 grep :
$ grep -oP "^..\K." file
6
7
8
7
7
1
4
4
4
7
与sed :
$ sed -r 's/..(.).*/\1/' file
6
7
8
7
7
1
4
4
4
7
与awk :
$ awk '{split ($0, a, ""); print a[3]}' file
6
7
8
7
7
1
4
4
4
7
关于linux - 在 unix 文件中搜索列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202259/