小编Rod*_*gel的帖子

ldconfig错误:不是符号链接

运行时:

    sudo /sbin/ldconfig
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

    /sbin/ldconfig: /usr/local/lib/ is not a symbolic link
Run Code Online (Sandbox Code Playgroud)

当我运行文件时:

    file /usr/local/lib/
    /usr/local/lib/: directory
Run Code Online (Sandbox Code Playgroud)

里面/usr/local/lib/有我使用的三个库.我会在这里称他们为lib1,lib2lib3.

现在,当我ldd在我的二进制文件上执行时,它会产生:

    lib1.so => not found
    lib2.so => not found
    lib3.so => /usr/local/lib/lib3.so (0x00216000)
Run Code Online (Sandbox Code Playgroud)

但是所有的文件夹都在同一个文件夹中/usr/local/lib/{lib1,lib2,lib3}.so.

每次运行时ldconfig,都会出现相同的错误:

/usr/local/lib/ is not a symbolic link
Run Code Online (Sandbox Code Playgroud)

我认为/usr/local/lib应该两次申报/etc/ld.conf.d/*.conf,但不是:

    sudo egrep '\/usr\/local' /etc/ld.so.conf.d/*
    projectA.conf.old:/usr/local/projectA/lib
    local.conf:/usr/local/lib
Run Code Online (Sandbox Code Playgroud)

ld.so.conf只包括/etc/ld.so.conf.d/*.conf,所以这*.old不是处理,它指的是/usr/local/projectA/lib.

经过一段时间后,我删除了所有的lib1和lib2(在某些时候我在二进制文件夹上测试了它),发生了同样的错误.

linux linker makefile gnu-make

36
推荐指数
3
解决办法
8万
查看次数

如何zgrep没有尾部的gz文件的最后一行

这是我的问题,我有一组大gz日志文件,该行中的第一个信息是日期时间文本,例如:2014-03-20 05:32:00.

我需要检查哪些日志文件包含特定数据.对于init我只需做一个:

           '-query-data-'
zgrep -m 1 '^20140320-04' 20140320-0{3,4}*gz
Run Code Online (Sandbox Code Playgroud)

但是如何对最后一行执行相同的操作而不处理整个文件,就像使用zcat(太重)一样:

zcat foo.gz | tail -1
Run Code Online (Sandbox Code Playgroud)

附加信息,这些日志是使用它的初始记录的数据时间创建的,所以如果我想在14:00:00查询日志,我还要在14:00:00之前创建的文件中搜索,作为文件将在13:50:00创建,在14:10:00关闭.

bash shell logging grep

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

如何在结果字符串中重复地重复n个匹配的模式

如何在结果字符串中精确重复n个匹配的模式?

示例如果我有以下文本:

++ '[' -f /etc/bashrc ']'
++ . /etc/bashrc
+++ '[' '[\u@\h \W]\$ ' ']'
+++ '[' -z 'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' ']'
+++ shopt -s checkwinsize
+++ '[' '[\u@\h \W]\$ ' = '\s-\v\$ ' ']'
+++ shopt -q login_shell
+++ '[' 506 -gt 199 ']'
++++ id -gn
Run Code Online (Sandbox Code Playgroud)

现在我想用每个'+'代替3个空格,但它只能在模式的开头发生.我会使用:<range>s/^<pattern> :%s/+/ /g,但如果它在文本的其余部分中有一个"+",我就会搞砸它.

问题:如何在开始时匹配每个+并在结果字符串中重复相同的found +计数?预期:

^   ++$  -> ^         $
^   +++$ -> ^            $
^   +$   -> ^      $
Run Code Online (Sandbox Code Playgroud)

谢谢

regex vim

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

如何在执行ex命令之前使vim的`:global`命令可以确认?

如何让vim的:global命令询问用户是否要执行ex命令?:substite与使用'c'选项的命令所发生的情况类似%s:Foo:Fighters:gc

我试过了:

:g/mypattern/.s:.*\n::gc
Run Code Online (Sandbox Code Playgroud)

:g/mypattern/s:.*\n::gc
Run Code Online (Sandbox Code Playgroud)

但是如果在下面的线上有匹配则跳跃.例如:

MATCH
NONMATCH
MATCH

MATCH
MATCH
Run Code Online (Sandbox Code Playgroud)

结果是:

NONMATCH

MATCH  <<-- this should be erased.
Run Code Online (Sandbox Code Playgroud)

提示g/FOO/d是完美的.

vim

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

egrep结果以vim作为行参考文件列表

在shell中,我使用以下函数创建文件列表并将其传递给vim.

感觉还好,但是我丢失了行参考,我按正确的顺序打开文件,但是当光标从第一行开始时我必须再次搜索文本.

〜/ .bashrc上的实际功能

function vimgrep(){
   vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' | grep -v 'Test\|test'` +ls
}

function vimgrep2(){
   vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' ` +ls
}
Run Code Online (Sandbox Code Playgroud)

Obs.:filelist必须来自shell到vim,然后它必须保留缓冲文件的行引用,就像结果:make当它捕获任何错误(但没有底部窗口[:cwindow]).

编辑:好的...不是那么优雅,但我可以将搜索到的字符串传递给vim为+ /"$ 1",如:

   vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' ` +/"$1"
Run Code Online (Sandbox Code Playgroud)

如果脚本不使用临时文件会更好.

vim bash shell grep

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

#define在模式后面有两个标记

谷歌上的每个参考仅显示简单的示例,我在代码上有这种情况:

#define XHANDLER(A,B,H) X_TO_BUS_HANDLER(A,B,H) X_FROM_BUS_HANDLER(A,B,H)

namespace{
   X_TO_BUS_HANDLER( some::SomeClassX,
                     bus::SomeBus,
                     foo::SomeHandler );
Run Code Online (Sandbox Code Playgroud)

有没有人知道这个定义是如何工作的?一种模式和两种令牌列表?请参考.

我egrepED代码,但只找到X_TO_BUS_HANDLER使用.

c++ macros c-preprocessor

4
推荐指数
2
解决办法
264
查看次数

如何make_shared计数次数,分配不同的区域而不重复循环?

如何make_shared计算时间,分配不同的区域而不重复循环?

我有以下代码:

for( unsigned int count = 0; count < demandedSize; ++count  )
{   
   m_connectionList.push_back( std::make_shared< Foo >( m_ip, m_port )); 
}
Run Code Online (Sandbox Code Playgroud)

如何在没有循环的情况下缩短这个?

我知道std::vector接收第二个参数const T&,但在这种情况下,所有shared_ptrs都指向同一个地址(值被复制).

std::vector< std::shared_ptr<Foo> > vet( demandedSize, std::make_shared<Foo>( m_ip, m_port ) );
Run Code Online (Sandbox Code Playgroud)

如何执行make_shared计数时间,结果分配不同的区域而不重复循环

c++ smart-pointers c++11

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

打印执行的COMMITTED行数和/或命令数

在Oracle 9i中,在命令行程序中.如何dbms_output.put_line在前一个BEGIN和最后一个之间受影响的行数(更新/删除/插入)COMMIT

另外,如何打印已执行指令的数量(DML,DDL)?

oracle oracle9i oraclecommand

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