在尾部输出中抑制日期,时间和文件名

时间:2012-04-03 18:47:59

标签: unix sed awk grep tail

我正在做Xcode dev并且正在重写NSLog以将输出转储到文件中,这样我就可以创建一个有用的日志窗口,而不像当前在Xcode中的混乱。

我正在使用tail ala终端显示文件内容,如下所示:

tail -f 'iPhone Simulator log.txt'

我想知道尾部是否是错误的cmd。原因是我不需要在每行开头提供尾部提供的附加信息,日期,时间和文件名。

抑制此输出似乎不是尾部的参数。

由于我不希望以“]”结尾的信息,是否可以使用grep,sed或awk从每行中删除该数据并仅将其余部分转储到屏幕上以便我可以获得一个好的我正在创建的输出的小日志,仅此而已?

TIA, - 亚历克斯

3 个答案:

答案 0 :(得分:1)

我会使用cuthttp://www.manpagez.com/man/1/cut/

tail -f 'iPhone Simulator log.txt' | cut -c 25-

(假设24是您想要带走的字符数。)

答案 1 :(得分:1)

使用sed:

tail -f 'iPhone Simulator log.txt' | sed -e 's/^\[[^]]*\]//'

正则表达式为:

 ^ - beginning of the line
 \[ - start [
 [^]]* - anything but the ]
 \] - end ]

答案 2 :(得分:0)

嗯。受到你的回复barju的启发,我做了一点嗅探,这有效:

tail -f 'iPhone Simulator log.txt' | sed -e 's/.*]/]/g'

虽然与正则表达式相关的许多事情都是正确的,但我不知道为什么。

虽然这是无意的,但是很好的只是删除了每行开头的字符。这意味着我在每行的开头都得到一个“括号空格”字符序列。这很好,因为这一点无意识的设计实际上很好地表明了新的数据行而没有占用太多的字符。

此外,这种sed +正则表达式方法不会在任何属于多行的数据的开头处对任何字符进行核对。

再次感谢您对此的所有帮助。我现在拥有自己的Xcode控制台/日志读取器,Xcode无法搞砸。