例如我的文件是这样的:
59 6 18 2014 169 7 14 2 7671912 7849744 201 4
60 6 19 2014 170 5 49 2 7671912 7849744 201 5
61 6 20 2014 171 6 8 2 7671912 7849744 201 6
62 6 23 2014 174 5 3 2 7671912 7849744 201 7
63 6 23 2014 174 7 17 2 7671912 7849744 201 8
64 6 24 2014 175 16 13 2 7671912 7849744 201 9
65 6 25 2014 176 8 20 2 7671912 7849744 201 10
10
1 1 49 6 16 2014 7 39 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871
1 2 49 6 17 2014 13 15 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871
1 3 49 6 18 2014 1 38 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871
1 4 49 6 18 2014 7 14 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871
1 5 49 6 19 2014 5 49 201 1 0 1043 <au_launchpad_back.gif> 201 gif <SIZE> 871
Run Code Online (Sandbox Code Playgroud)
我需要打印单令牌条目“10”的前一行,它应该是
65 6 25 2014 176 8 20 2 7671912 7849744 201 10
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
您可以使用awk:
awk 'NF == 1 { print LAST } { LAST=$0 }' < datafile
Run Code Online (Sandbox Code Playgroud)
这将保存文件 ( LAST=$0) 的每一行,并且当一行只有一条记录时(NF == 1-NF粗略地说是该行上的标记数),它会打印出保存的前一行。