我使用 xubuntu 14.04,64 位。时不时地,当我尝试在 xfce4-terminal 中粘贴一些文本时,它不是要粘贴的预期文本,而是被0~
和包围1~
,例如:
0~mvn clean install1~
Run Code Online (Sandbox Code Playgroud)
文本应该是mvn clean install
- 我通过将内容粘贴到其他各种应用程序(gnome-terminal、gedit 等)中来验证这一点。除 xfce4-terminal 外,每个应用程序都会正确粘贴内容。我在互联网上找不到任何参考资料(不幸的是,很难在 google.com 上搜索带有特殊字符的文本......)。为什么会发生这种情况?
这个问题应该移到 stackoverflow 上吗?
我经常需要使用 log4j 读取由 java 应用程序生成的日志文件。通常,记录的消息(我们称之为日志条目)跨越多行。例子:
INFO 10:57:01.123 [Thread-1] [Logger1] This is a multi-line
text, two lines
DEBUG 10:57:01.234 [Thread-1] [Logger2] This entry takes 3 lines
line 2
line 3
Run Code Online (Sandbox Code Playgroud)
请注意,每个日志条目都从新行开始,该行的第一个单词是 TRACE、DEBUG、INFO 或 ERROR,并且至少有一个空格。这里有 2 个日志条目,第一个在 123 毫秒,另一个在 234 毫秒。
我想要一个快速命令(使用 sed/grep/awk/etc 的组合)来过滤日志条目(grep 只过滤行),例如:删除所有包含文本“Logger2”的日志条目。
我考虑进行以下转换:
1) 将属于相同日志条目的行与特殊的字符序列(例如:##)连接起来;这样,所有日志条目将只占用一行
INFO 10:57:01.123 [Thread-1] [Logger1] This is a multi-line##text, two lines
DEBUG 10:57:01.234 [Thread-1] [Logger2] This entry takes 3 lines##line 2##line 3
Run Code Online (Sandbox Code Playgroud)
2) grep
3) 将行拆分回来(即:用 \n 替换 ##)
我在第 1 步遇到了麻烦 …