小编And*_*lez的帖子

awk模式可以匹配多行吗?

我有一些复杂的日志文件,我需要编写一些工具来处理它们.我一直在玩awk,但我不确定awk是否适合这个.

我的日志文件是OSPF协议解码的打印输出,其中包含各种协议pkts的文本日志及其内容,以及用其值标识的各种协议字段.我想处理这些文件并只打印出与特定pkts相关的日志的某些行.每个pkt日志可以包含该pkt条目的不同行数.

awk似乎能够处理与模式匹配的单行.我可以找到所需的pkt然后我需要匹配后面的行中的模式,以确定它是否是我想要打印的pkt.

另一种看待这种情况的方法是,我希望在日志文件中隔离几行,并根据几行上的模式匹配打印出那些特定pkt细节的行.

由于awk似乎是基于行的,我不确定这是否是最好的工具.

如果awk可以做到这一点,怎么做?如果没有,有关于使用哪种工具的建议?

linux awk

20
推荐指数
3
解决办法
4万
查看次数

android studio是否有vi编辑器

我是一位来自前unix世界的笨蛋开发者,他是在vi编辑器上长大的.我可以看到IDE对于开发有多大用处(例如Windows Visual平台或Eclipse),但我一直希望继续使用我的开发平台的命令行,因为我非常精通vi.

我现在正试图用它的IDE Android Studio学习android开发生态系统.我必须承认,我正逐渐成为使用IDE的转换器.然而,编辑仍然是我的沮丧之源.我需要永远只是导航源文件,而不是复杂的重构.vi的天才之处在于你无需离开键盘就可以导航编辑光标和输入代码 - 这样你就可以变得非常高效和快速.但是使用Android Studio编辑器,我必须首先使用鼠标导航到编辑位置,然后将手返回键盘输入代码.

那么,Android Studio是否有vi编辑器插件?

谢谢...

android android-studio

10
推荐指数
1
解决办法
4041
查看次数

opencv无法在启用ipp支持的情况下构建

我在使用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

opencv

9
推荐指数
1
解决办法
6519
查看次数

为什么不tar保留文件权限?

我注意到在一个linux上创建的tarball在另一个linux上提取时不保留文件权限.

如何让tar保留文件权限?

linux tar

9
推荐指数
3
解决办法
2万
查看次数

试图了解仿射变换

我正在使用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[]代表的映射是什么?

opencv

7
推荐指数
1
解决办法
1万
查看次数

ALSA阈值,avail_min和期间有什么区别?

我正在四核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问题:

  1. 是启动阈值(snd_pcm_sw_params_set_start_threshold()仅与异步捕获相关吗?也就是说,启动阈值似乎不适用于基于poll()的捕获.这是正确的吗?

  2. 帧中的周期大小和帧中的avail_min大小有什么区别?文档似乎暗示avail_min设置poll()将返回的点,因为至少有许多帧可供读取.句点大小是一个hw参数,但API仍然提供最小值和最大值以及设置它的方法.在我看来,他们真的是一样的但我不能让我的poll()根据我设定的时间段返回.

  3. 当我解释snd_pcm_sw_params_set_avail_min()为触发poll()例程设置可用捕获帧的目标数量的意图时,我是否误读了文档?

  4. 对于我来说,期望poll()应该比任何可用于读取的500到1500帧之间的返回更加一致,这是否合理?或者这是正常的行为,我应该期望可供阅读的帧数有很大的变化吗?

  5. 如果预期有很大的变化,最好总是读取报告的总可用帧,snd_pcm_avail()或者每次poll()返回时最好读取一定数量的帧?

audio alsa audio-recording

6
推荐指数
1
解决办法
3882
查看次数

没有任何RecyclerView的使用PreferenceFragmentCompat的RecyclerView异常

我正在使用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的其他工作示例则不需要,因此我对如何解决此问题感到困惑。

谢谢,-安德烈斯

android android-fragments android-recyclerview

6
推荐指数
1
解决办法
582
查看次数

当BIO是内存BIO而不是套接字BIO时,BIO_read/BIO_write和SSL_read/SSL_write有什么区别?

当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

openssl dtls webrtc

5
推荐指数
1
解决办法
4430
查看次数

配置OpenCV时出现CMake错误

我正在使用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

opencv cmake

3
推荐指数
1
解决办法
2681
查看次数

为什么在代码流中没有删除也没有空闲时在stdc ++库中调用delete?

我在调试代码时遇到问题,并且对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)

c++ linux gdb

3
推荐指数
1
解决办法
233
查看次数

从Javascript访问SVG不起作用

我一直在关注使用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

javascript svg

3
推荐指数
1
解决办法
3649
查看次数

几个dbus基本问题

我是 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 进行的唯一通信将仅在我自己的进程之间进行,而不是在任何其他公共或其他众所周知的服务之间进行。

谢谢,

-安德烈斯

linux dbus

2
推荐指数
1
解决办法
1192
查看次数

在windows中看到的samba共享,但无法连接

我正在尝试为我的家庭网络访客访问设置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框正确进行身份验证以进行简单的访客访问?

samba

1
推荐指数
1
解决办法
2万
查看次数