Arp*_*pan 1 unix linux awk grep
我有以下数据文件:
136110828724515000007700877
137110904734015000007700877
138110911724215000007700877
127110626724515000007700871
127110626726015000007700871
131110724724515000007700871
134110814725015000007700871
134110814734015000007700871
104110122726027000001810072
107110208724527000002900000
Run Code Online (Sandbox Code Playgroud)
我想提取第3列的值,即值6787714447.我尝试使用: -
awk "print $3" <filename>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我应该用什么呢?
这是一个更好的工作cut
:
$ cut -c 3 < file
6
7
8
7
7
1
4
4
4
7
Run Code Online (Sandbox Code Playgroud)
按照man cut
:
-c, - characters = LIST
只选择这些字符
为了使它们出现在同一行,管道tr -d '\n'
:
$ cut -c 3 < file | tr -d '\n'
6787714447
Run Code Online (Sandbox Code Playgroud)
或者甚至sed
在最后都有新的产品线:
$ cut -c 3 < file | tr -d '\n' | sed 's/$/\n/'
6787714447
Run Code Online (Sandbox Code Playgroud)
用grep:
$ grep -oP "^..\K." file
6
7
8
7
7
1
4
4
4
7
Run Code Online (Sandbox Code Playgroud)
与sed:
$ sed -r 's/..(.).*/\1/' file
6
7
8
7
7
1
4
4
4
7
Run Code Online (Sandbox Code Playgroud)
用awk:
$ awk '{split ($0, a, ""); print a[3]}' file
6
7
8
7
7
1
4
4
4
7
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
996 次 |
最近记录: |