我有一些复杂的日志文件,我需要编写一些工具来处理它们.我一直在玩awk,但我不确定awk是否适合这个.
我的日志文件是OSPF协议解码的打印输出,其中包含各种协议pkts的文本日志及其内容,以及用其值标识的各种协议字段.我想处理这些文件并只打印出与特定pkts相关的日志的某些行.每个pkt日志可以包含该pkt条目的不同行数.
awk似乎能够处理与模式匹配的单行.我可以找到所需的pkt然后我需要匹配后面的行中的模式,以确定它是否是我想要打印的pkt.
另一种看待这种情况的方法是,我希望在日志文件中隔离几行,并根据几行上的模式匹配打印出那些特定pkt细节的行.
由于awk似乎是基于行的,我不确定这是否是最好的工具.
如果awk可以做到这一点,怎么做?如果没有,有关于使用哪种工具的建议?
我是一位来自前unix世界的笨蛋开发者,他是在vi编辑器上长大的.我可以看到IDE对于开发有多大用处(例如Windows Visual平台或Eclipse),但我一直希望继续使用我的开发平台的命令行,因为我非常精通vi.
我现在正试图用它的IDE Android Studio学习android开发生态系统.我必须承认,我正逐渐成为使用IDE的转换器.然而,编辑仍然是我的沮丧之源.我需要永远只是导航源文件,而不是复杂的重构.vi的天才之处在于你无需离开键盘就可以导航编辑光标和输入代码 - 这样你就可以变得非常高效和快速.但是使用Android Studio编辑器,我必须首先使用鼠标导航到编辑位置,然后将手返回键盘输入代码.
那么,Android Studio是否有vi编辑器插件?
谢谢...
我在使用ipp支持构建opencv时遇到了一些问题.我在debian压缩32位上使用cmake-gui和ipp的最新intel版本(完整composer包).
我想我已经正确配置了cmake.当我启用ipp构建时,构建失败并显示以下错误:
/usr/bin/ld: /opt/intel/ipp/lib/ia32/libippcv_l.a(ippcv00242as.o): relocation R_386_GOTOFF against undefined symbol `ippJumpIndexForMergedLibs' can not be used when making a shared object
/usr/bin/ld: final link failed: Bad value
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎不是配置类型错误:-)
有关如何解决此问题的任何想法?
谢谢,
-Andres
我注意到在一个linux上创建的tarball在另一个linux上提取时不保留文件权限.
如何让tar保留文件权限?
我正在使用OpenCV中的仿射变换,我无法直观地理解它的工作原理,更具体地说,我如何指定地图矩阵的参数,以便获得特定的期望结果.
要设置问题,我使用的过程是第一个定义warp矩阵,然后进行转换.
在OpenCV中,有两个例程(我在Bradski&Kaehler的优秀书籍OpenCV中使用了一个例子):
cvGetAffineTransorm(srcTri, dstTri, warp_matrix);
cvWarpAffine(src, dst, warp_mat);
Run Code Online (Sandbox Code Playgroud)
为了限定该经矩阵,srcTri并且dstTri定义如下:
CvPoint2D32f srcTri[3], dstTri[3];
Run Code Online (Sandbox Code Playgroud)
srcTri[3] 填充如下:
srcTri[0].x = 0;
srcTri[0].y = 0;
srcTri[1].x = src->width - 1;
srcTri[1].y = 0;
srcTri[2].x = 0;
srcTri[2].y = src->height -1;
Run Code Online (Sandbox Code Playgroud)
这基本上是矩阵起点的图像的左上角,右上角和左下角.这部分对我有意义.
但是,dstTri[3]正义的价值令人困惑,至少,当我改变一个点时,我没有得到我期望的结果.
例如,如果我然后使用以下内容dstTri[3]:
dstTri[0].x = 0;
dstTri[0].y = 0;
dstTri[1].x = src->width - 1;
dstTri[1].y = 0;
dstTri[2].x = 0;
dstTri[2].y = 100;
Run Code Online (Sandbox Code Playgroud)
似乎src和dst点之间的唯一区别是左下角点向右移动了100个像素.直觉上,我觉得图像的底部应该向右移动100个像素,但事实并非如此.
另外,如果我使用了完全相同的值dstTri[3],我使用的srcTri[3],我认为转换会产生完全相同的图像-但事实并非如此.
显然,我不明白这里发生了什么.那么,从代表srcTri[]到dstTri[]代表的映射是什么?
我正在四核debian盒子上进行ALSA捕获程序,我很困惑.
基本的ALSA捕获,hw:0接口,16位,44.1 KHz,使用带有poll()的阻塞线程,由snd_pcm_start()和控制snd_pcm_drop().我检查所有ALSA API调用的返回值.基本捕获工作正常,但我无法弄清楚如何设置轮询速率(即,ALSA通知我的poll()例程返回的频率,因为可以读取帧).
我用它snd_pcm_sw_params_set_avail_min()来设置为2048帧,当有大约2048帧可供读取时,poll()返回.我打电话snd_pcm_avail_delay()之前打电话snd_pcm_readi(),这一切看似合理.但如果我将它设置为低于2048的任何值,我会得到不一致的结果.如果我将avail_min设置为1024的一半时间poll()返回时有大约1024帧可用,而有一半时间直到1500帧可用.当我将avail_min设置为512时,第一次读取是512,但随后95%的后续读取是1024帧或更大.当我呼叫snd_pcm_hw_params_get_period_size_min/max()此设备报告有效范围为16-8192帧时,因此512帧的时间段似乎不合理 - 驱动程序报告hw支持它.
我已经试过的每个组合snd_pcm_sw_params_set_avail_min(),snd_pcm_hw_params_set_period_size()和snd_pcm_sw_params_set_start_threshold(),但仍不能得到合理的结果.
我已经尝试用pthread setaffinity将这个线程钉到单个CPU核心.我试图sched_setschedule()给这个过程"软"实时优先级.似乎没有什么能让我得到一致的poll()返回,除了将avail_min设置为至少2048.
以下是一些ALSA问题:
是启动阈值(snd_pcm_sw_params_set_start_threshold()仅与异步捕获相关吗?也就是说,启动阈值似乎不适用于基于poll()的捕获.这是正确的吗?
帧中的周期大小和帧中的avail_min大小有什么区别?文档似乎暗示avail_min设置poll()将返回的点,因为至少有许多帧可供读取.句点大小是一个hw参数,但API仍然提供最小值和最大值以及设置它的方法.在我看来,他们真的是一样的但我不能让我的poll()根据我设定的时间段返回.
当我解释snd_pcm_sw_params_set_avail_min()为触发poll()例程设置可用捕获帧的目标数量的意图时,我是否误读了文档?
对于我来说,期望poll()应该比任何可用于读取的500到1500帧之间的返回更加一致,这是否合理?或者这是正常的行为,我应该期望可供阅读的帧数有很大的变化吗?
如果预期有很大的变化,最好总是读取报告的总可用帧,snd_pcm_avail()或者每次poll()返回时最好读取一定数量的帧?
我正在使用PreferenceFragmentCompat,并且出现以下运行时异常:
Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setAdapter(android.support.v7.widget.RecyclerView$Adapter)' on a null object reference
Run Code Online (Sandbox Code Playgroud)
令人困惑的是,我的首选项定义不包含任何RecyclerViews。这是XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.preference.PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android" >
<android.support.v7.preference.PreferenceCategory
android:layout="@layout/preference_first_category"
android:title="@string/pref_category_general">
<android.support.v7.preference.SwitchPreferenceCompat
android:title="@string/pref_demo_mode"
android:key="@string/pref_demo_mode_key"
android:defaultValue="true"
android:persistent="true" />
</android.support.v7.preference.PreferenceCategory>
<android.support.v7.preference.PreferenceCategory
android:layout="@layout/preference_category"
android:key="serverCategory"
android:persistent="false"
android:title="@string/pref_category_server">
<android.support.v7.preference.EditTextPreference
android:title="@string/pref_server_control_ip"
android:summary="@string/pref_enter_ip_address"
android:defaultValue="@string/pref_enter_ip_address"
android:key="@string/pref_ctrl_ip_key"
android:selectAllOnFocus="true"
android:singleLine="true"
android:persistent="true" />
<android.support.v7.preference.EditTextPreference
android:title="@string/pref_server_admin_ip"
android:summary="@string/pref_enter_ip_address"
android:defaultValue="@string/pref_enter_ip_address"
android:key="@string/pref_admin_ip_key"
android:selectAllOnFocus="true"
android:singleLine="true"
android:persistent="true" />
<android.support.v7.preference.EditTextPreference
android:title="@string/pref_server_network_mask"
android:defaultValue="@string/pref_enter_network_mask"
android:summary="@string/pref_enter_network_mask"
android:key="@string/pref_network_mask_key"
android:selectAllOnFocus="true"
android:singleLine="true"
android:persistent="true" />
</android.support.v7.preference.PreferenceCategory>
</android.support.v7.preference.PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
我已经查看了Reference API,并且可以清楚地看到PreferenceFragmentCompat确实支持RecyclerView,但是我看到了几个工作代码示例,这些示例在其首选项中没有RecyclerView视图,因此RecyclerView不是强制性的。
我是否需要重写任何RecyclerView方法?没有RecyclerView的其他工作示例则不需要,因此我对如何解决此问题感到困惑。
谢谢,-安德烈斯
当BIO是内存BIO而不是套接字BIO时,我对BIO例程BIO_read()/ BIO_write()和SSL_read()/ SSL_write()之间的区别感到困惑.
我正在尝试使用libnice为ICE堆栈编写WebRTC服务器,并为DTLS堆栈编写openssl.ICE堆栈具有到客户端的套接字连接,因此我无法在openssl中使用基于套接字的BIO.相反,我正在使用内存BIO.
所以我使用的高级过程是,当我从ICE套接字上的客户端收到DTLS消息时,我使用BIO_write()将该消息写入DTLS堆栈.然后,当DTLS堆栈有一条要发送到客户端的消息时,我使用BIO_read()获取该消息,并使用ICE套接字将其发送到客户端.
我已经看到了一些基本上执行此过程的源代码示例,但是在BIO_write()调用之后它们也调用了SSL_read()例程.这对我来说毫无意义.在我基本上使用BIO_write()调用将客户端消息写入DTLS堆栈之后,为什么需要调用SSL_read()?如果我在BIO_write()之后没有调用SSL_read(),那么我的代码不起作用.但是当我在BIO_write()之后调用SSL_read()时,这确实是与浏览器客户端交换握手消息.
问题:使用内存BIO,BIO_read()和SSL_read()之间有什么区别; 问题:使用内存BIO,BIO_write()和SSL_write()之间有什么区别?问题:默认内存是BIO阻塞还是非阻塞?我假设它是非阻塞的,因为它是基于内存的BIO而不是基于套接字的BIO.
谢谢,-Andres
我正在使用cmake-gui尝试构建opencv但是得到了这个错误:
CMake Error at cmake/OpenCVGenConfig.cmake:134 (math):
math cannot parse the expression: "8 * ": syntax error, unexpected $end,
expecting exp_OPENPARENT or exp_NUMBER (4)
Call Stack (most recent call first):
CMakeLists.txt:649 (include)
Run Code Online (Sandbox Code Playgroud)
这是我第一次使用cmake,所以我不知道该转向何处.我查看了OpenCVGenConfig.cmake文件,但我对它的语法一无所知.我吹走了所有东西,再次下载了opencv tarball,但仍然得到了同样的错误.因此,它似乎不是OpenCVGenConfig.cmake文件中的拼写错误/错误,而是处理"math"命令.我似乎无法在Cmake文档中找到与"math"命令相关的任何内容.
有任何想法吗?
-Andres
我在调试代码时遇到问题,并且对gdb输出感到有点困惑.我已经在下面附加了gdb输出.最后两行,第13行和第14行是我的代码,但其他所有内容都来自C++库.令我感到困惑的是,从第7行向上,似乎是在调用delete.这是初始化代码,在代码流中没有删除或释放.但有些事情导致在C++库中的某处调用delete.
这是一个带有g ++ 4.7.2的debian盒子
任何人都有一个可以帮助我的线索吗?
编辑:谢谢你们的帮助.我确实认为这里还有其他事情发生.由于我的代码的意图是使用几个append()调用来构造一个字符串,我在ctor中为该字符串添加了对reserve()的调用,因此它足够大以处理一些append()调用而不必获取更多的空间.这显然有所帮助,因为我现在更难以强制崩溃.但我确实同意原因可能在我的代码中的其他地方.再次感谢您的帮助.
Program received signal SIGABRT, Aborted.
0xb7fe1424 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7fe1424 in __kernel_vsyscall ()
#1 0xb7a9a941 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0xb7a9dd72 in *__GI_abort () at abort.c:92
#3 0xb7ad6e15 in __libc_message (do_abort=2, fmt=0xb7baee70 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#4 0xb7ae0f01 in malloc_printerr (action=<optimized out>, str=0x6 <Address 0x6 out of bounds>, ptr=0xb71117f0) at malloc.c:6283
#5 0xb7ae2768 in _int_free (av=<optimized out>, p=<optimized out>) at malloc.c:4795
#6 0xb7ae581d in …Run Code Online (Sandbox Code Playgroud) 我一直在关注使用Javascript访问SVG元素的示例,但我无法让它工作.这段代码有什么问题?
使用Javascript:
var objTag = document.getElementById('esc-seconds-1s');
objTag.addEventListener('load', function() {
var svgDoc = objTag.contentDocument;
var cc3 = svgDoc.getElementById('cc3');
cc3.setAttribute('fill', 'red');
}, false);
Run Code Online (Sandbox Code Playgroud)
我收到以下控制台错误:
Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLObjectElement': Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.
Run Code Online (Sandbox Code Playgroud)
我认为这个错误有点失误.错误来自contentDocument行,所以我认为这不是因为相同的原始策略.另外,我在SVG文件中没有任何xlink行.这是我的SVG的顶部:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
Run Code Online (Sandbox Code Playgroud)
SVG显示正常,为什么objTag.contentDocument调用失败?
html:
<object class="esc-seven-segment" id="esc-seconds-1s"
type="image/svg+xml" data="images/seven-segment-digit.svg"></object>
Run Code Online (Sandbox Code Playgroud)
谢谢,
-Andres
我是 dbus 的新手,我试图了解如何使用它,但我似乎找不到我想要的答案。
我可以发明自己的服务名称,只要它们是唯一的并且不与任何其他服务名称冲突,我对吗?
当我调用 dbus_bus_request_name() 请求我自己的服务名称时,我收到一条错误消息,指出由于配置文件中的安全策略,我不允许拥有该服务。查看 /etc/dbus-1 配置目录,似乎有一个系统配置文件(/etc/dbus-1/system.conf),然后是用于各种服务的其他配置文件的子目录(/etc/ dbus-1/system.d 子目录)。
我使用其他 .conf 文件作为示例为我的服务名称添加了一个配置文件。但我没有看到 system.conf 文件读取任何单独的 .conf 文件。我是否正确地假设各个配置文件将以某种方式被读取?那么,在编辑 system.d 目录中的单个 .conf 文件之一后,或者像我一样添加新的服务配置文件后,如何让系统总线重新读取 system.conf 文件呢?
这是配置系统总线以便我可以有 2 个进程传递消息的正确方法吗?我的应用程序是一个由多个进程组成的封闭应用程序,因此我打算通过系统 dbus 进行的唯一通信将仅在我自己的进程之间进行,而不是在任何其他公共或其他众所周知的服务之间进行。
谢谢,
-安德烈斯
我正在尝试为我的家庭网络访客访问设置samba共享.我想要做的就是提供访客访问权限,以便每个家庭成员都有一个可远程访问的目录,以便他们可以复制他们想要备份的文件.我不想在Linux机器上给家庭成员用户帐户,只为访客访问samba.这是我在smb.conf文件中的一个共享示例:
security = share
[Backups-Rhonda]
path = /raid1/rhonda
guest ok = yes
guest account = nobody
guest only = yes
browseable = yes
writable = yes
Run Code Online (Sandbox Code Playgroud)
共享路径具有文件权限666.我使用smbpasswd为我的debian框中的nobody帐户提供密码.使用smbstatus -v我可以看到该服务确实已连接到Windows客户端.在Windows客户端上,我可以看到共享,因此samba似乎正在工作.
但是,Windows框上的身份验证失败.我总是得到一个对话框,上面写着You do not have permission to access..... 我已经尝试map network drive...但是Location is not available W:\ is not accessible Access is denied对话失败了.我尝试了Connect using different credentials地图网络驱动器,但仍然是相同的错误对话框.
如何让Windows框正确进行身份验证以进行简单的访客访问?