我想删除它:
2012-04-04 07:51:04 (2012-04-04 11:51:04.399000000Z): subject=PROD.
来自以下
2012-04-04 07:51:04 (2012-04-04 11:51:04.399000000Z): subject=PROD.sdmp.o.t.0.0.0.0.NewOrderExecutionOE.?.4366.0.2.3.1.TNP.FIDESSA.IBAPPBAL504.EQUITY, message={PL=[10 3 49 46 51 18 3 84 78 80 26 7 70 73 68 69 83 83 65 34 37 79 69 45 50 48 49 50 48 52 48 52 45 48 48 48 48 52 54 55 55 52 48 50 84 82 83 70 49 46 49 46 49 45 48 48 50 49 42 19 78 101 119 79 114 100 101 114 69 120 101 99 117 116 105 111 110 79 69 50 128 8 10 189 4 8 240 46 16 0 24 0 48 0 56 0 64 0 72 2 80 2 88 2 96 0 104 216 29 112 0 120 174 11 128 1 2 136 1 136 165 215 226 231 38 144 1 223 3 152 1 1 160 1 246 181 215 226 231 38 168 1 223 3 176 1 0 194 1 7 70 73 68 69 83 83 65 200 1 1 210 1 37 79 69 45 50 48 49 50 48 52 48 52 45 48 48 48 48 52 54 55 55 52 48 50 84 82 83 70 49 46 49 46 49 45 48 48 50 49 218 1 78 83 85 70 73 32 83 83 32 49 57 48 48 32 83 84 68 32 64 32 55 46 50 55 32 85 83 68 32 65 67 67 79 85 78 84 32 67 83 87 69 45 73 78 86 45 78 77 77 32 67 79 78 84 82 65 32 65 82 67 65 32 83 70 71 45 67 79 82 82 69 83 80 79 78 68 69 78 84 224 1 203 85 242 1 22 67 65 82 77 69 76 79 46 82 85 66 65 78 79 64 83 85 70 73 46 85 83 248 1 30 128 2 213 11 146 2 4 83 85 70 73 152 2 5 168 2 5 176 2 1 186 2 7 16 11 26 3 85 83 68 192 2 142 34 202 2 7 16 3 26 3 83 84 68 146 3 7 70 73 68 69 83 83 65 162 3 46 79 114 100 101 114 73 110 115 116 114 117 99 116 105 111 110 45 50 48 49 50 48 52 48 52 45 48 48 48 48 48 48 48 48 48 50 49 78 79 83 70 49 45 49 45 49 170 3 7 70 73 68 69 83 83 65 186 3 24 79 114 100 101 114 45 50 48 49 50 48 52 48 52 45 50 49 78 79 83 70 49 45 49 192 3 14 202 3 15 65 114 99 97 69 120 69 120 101 99 86 101 110 117 101 208 3 8 218 3 8 78 89 83 69 65 114 99 97 232 3 213 11 250 3 4 83 85 70 73 128 4 5 136 4 203 85 154 4 22 67 65 82 77 69 76 79 46 82 85 66 65 78 79 64 83 85 70 73 46 85 83 160 4 30 168 4 213 11 186 4 4 83 85 70 73 192 4 5 208 4 210 13 226 4 7 85 78 75 78 79 87 78 240 4 85 130 5 4 65 82 67 65 136 5 5 144 5 85 162 5 4 65 82 67 65 168 5 5 184 5 137 244 17 194 5 12 67 83 87 69 45 73 78 86 45 78 77 77 202 5 4 73 66 82 75 208 5 214 188 12 218 5 17 83 70 71 45 67 79 82 82 69 83 80 79 78 68 69 78 84 226 5 4 73 66 82 75 216 6 0 226 6 2 16 0 128 7 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 58 11 73 66 65 80 80 66 65 76 53 48 52 64 207 247 148 134 237 137 184 231 8] ET[1]=2012-04-04 11:51:01Z}
但我不确定如何使用awk或cut来做到这一点,无论我做什么我都无法做到。 我知道你必须在awk中使用$ i,但我无法得到正确的分裂以获得我想要的东西。
任何帮助将不胜感激。
好的,这是我尝试使用cut的方式:
cut -d "." -f3- data.log > dataCut.log
这适用于大部分文件,但在某些时候它会切断sdmp。这是我需要的东西。
答案 0 :(得分:2)
如果您有GNU grep
,那么只需:
grep -Po 'PROD[.]\K.*' file
答案 1 :(得分:1)
如何简单cut
:
cut -c68- file
输出:
sdmp.o.t.0.0.0.0.NewOrderExecutionOE.?.[cut for brevity]
使用sed
sed 's/^.\{67\}//' file
使用colrm
$ colrm 1 67 < file
perl
:
perl -pe 's/^.{67}//' file
最后awk
(为了简洁起见,无法击败@kent)
awk 'BEGIN{FIELDWIDTHS="67 9999"}{print$2}' file
答案 2 :(得分:1)
如果只有一个PROD.
,则不必分为句点“。”,您可以:
awk -F'PROD.' '$0=$2' input
或
awk -F'PROD\\.' '$0=$2' input
但我猜您的PROD.foo.bar
可能是动态的,例如TEST.foo.bar
或DEV.foo.bar...
,在这种情况下,您可以使用subject=
awk -F'subject=[A-Z]+\\.' '$0=$2' input
如果可能有其他可能性,你可以调整[A-Z]
。支持PCRE的grep(例如gnu grep)也可以工作。
答案 3 :(得分:0)
一种方法是使用sub
。
awk '{sub(/^[0-9][-0-9:. :)(Z]* subject=PROD./, ""); print;}'
这基本上匹配从“行首”到“主题= PROD”的所有内容。并用空字符串替换它。
答案 4 :(得分:0)
虽然你要求awk sed 可能是这项工作的工具:
sed -r 's/^.+ subject=PROD\.(.*)/\1/' file