小编who*_*oan的帖子

如何用sed在正则表达式中减去?

我需要从不需要的字符中释放一个字符串.在这个例子中,我想从b中过滤掉所有+的和所有-的,并将结果写入c.所以如果b是,c应该是.+fdd-dfdf++-+

read b
c=$(echo $b | sed 's/[^(\+|\-)]//g')
Run Code Online (Sandbox Code Playgroud)

但是当我运行脚本时,控制台说:

sed:-e expression#1,char 15:无效的范围结束

原因在于\-我的正则表达式.我该如何解决这个问题并说,我想过滤掉所有-的问题?

expression sed filter

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

使用符号| &&〜和〜在capability.h文件中

我正在阅读这里给出的文件capability.h
我不清楚如何在函数调用中使用符号| ~ &以及&~它们在做什么

使用|以下函数调用:

static inline kernel_cap_t cap_combine(const kernel_cap_t a,
                                       const kernel_cap_t b)
{
        kernel_cap_t dest;
        CAP_BOP_ALL(dest, a, b, |);
        return dest;
}
Run Code Online (Sandbox Code Playgroud)

使用&以下系统调用:

static inline kernel_cap_t cap_intersect(const kernel_cap_t a,
                                         const kernel_cap_t b)
{
        kernel_cap_t dest;
        CAP_BOP_ALL(dest, a, b, &);
        return dest;
}
Run Code Online (Sandbox Code Playgroud)

使用&~以下功能:

static inline kernel_cap_t cap_drop(const kernel_cap_t a,
                                    const kernel_cap_t drop)
{
        kernel_cap_t dest;
        CAP_BOP_ALL(dest, a, drop, &~);
        return dest;
}
Run Code Online (Sandbox Code Playgroud)

使用~以下功能:

static …
Run Code Online (Sandbox Code Playgroud)

c posix linux-kernel embedded-linux

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

如何一次重命名多个文件

我的文件系统中有很多文件,目录和子目录.
例如:

/path/to/file/test-poster.jpg
/anotherpath/my-poster.jpg
/tuxisthebest/ohyes/path/exm/bold-poster.jpg

我想从切换所有文件名*-poster.jpg,以folder.jpg
我与尝试sedawk没有成功.
一点帮助?

linux shell awk sed file-rename

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

在c ++中重载[] []运算符

我正在用c ++编写矩阵3x3类.

glm :: mat3通过[][] operator语法提供对矩阵数据的访问.
例如,myMatrix[0][0] = 1.0f; 将第一行,第一列输入设置为1.0f.

我想提供类似的访问权限.怎么能超载[][] operators?

我尝试了以下内容,但是我收到了错误:

必须将运算符名称声明为函数

const real operator[][](int row, int col) const
{
    // should really throw an exception for out of bounds indices
    return ((row >= 0 && row <= 2) && (col >= 0 && col <= 2)) ? _data[row][col] : 0.0f;
}
Run Code Online (Sandbox Code Playgroud)

重载此运算符的正确方法是什么?

c++ operator-overloading

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

当变量调用时,我如何调用别名

我添加了一个别名:

$ alias anyalias="echo kallel"
Run Code Online (Sandbox Code Playgroud)

如果我执行:

$ anyalias
kallel
Run Code Online (Sandbox Code Playgroud)

它执行echo命令没有任何问题.

现在,如果我以这种方式定义变量:

$ var="anyalias"
Run Code Online (Sandbox Code Playgroud)

然后以这种方式执行:

$  $var
-ash: anyalias: not found
Run Code Online (Sandbox Code Playgroud)

然后我收到了一个shell错误.

如何$var运行anyalias别名中定义的命令?

我不打算改变打电话的方式$var.但我正在寻找一种方法来改变别名的定义或导出它.

linux bash shell alias

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

在bash中将数组中的一个键关联多个值

我有一个文本文件,如下所示:

1 aaaa
2 bbbb
3 cccc
4 dddd
2 eeee
2 ffff
4 gggg
Run Code Online (Sandbox Code Playgroud)

我想将它们映射到某种关联数组中,以便我可以访问例如与键 2 关联的所有值以及与键 4 关联的所有值等:

1->aaaa
2->bbbb,eeee,ffff
3->cccc
4->dddd,gggg
Run Code Online (Sandbox Code Playgroud)

我一直无法弄清楚如何使用“declare -A MYMAP”来做到这一点。有一些简单的方法可以做到这一点吗?

- - - - 更新 - - - -

我的键/值对实际上看起来像这样:

bb126.B1 bb126.1.ms.01
bb126.B2 bb126.1.ms.02
bb126.B3 bb126.1.ms.03
bb126.B4 bb126.1.ms.04
Run Code Online (Sandbox Code Playgroud)

arrays bash dictionary

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

QtService无法启动

QtService上课有问题.我正在尝试构建Windows服务.我下载了文件并将它们包含在我的项目中.

现在,当我运行项目时(在QtCreator中)我收到消息

服务MyService无法启动.

该方法start()未执行.

我在实现结束时在文件qtservice.cpp中找到了上层消息QtServiceBase::exec().

你知道我为什么收到这条消息吗?

myservice.h:

#ifndef MYSERVICE_H
#define MYSERVICE_H

#include <QtService/qtservice.h>
#include <QCoreApplication>
#include <QDebug>
#include <QObject>

class MyService : public QtService<QCoreApplication>
{
public:
    MyService(int argc, char **argv);
    ~MyService();
    void start();
    void pause();
    void resume();
    void stop();

private:

};

#endif // MYSERVICE_H
Run Code Online (Sandbox Code Playgroud)

myservice.cpp:

#include "myservice.h"

MyService::MyService(int argc, char **argv) : QtService<QCoreApplication>(argc, argv, "MyService")
{
    qDebug() << "CONSTRUCTOR";
    setServiceDescription("This is my service. ");
    setServiceFlags(QtServiceBase::CanBeSuspended);
    qDebug() …
Run Code Online (Sandbox Code Playgroud)

c++ service qt

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

C编程语言中'\ 0'和'\n'有什么区别?

C编程语言中'\ 0'字符和'\n'字符有什么区别?

c escaping character

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

线程安全的队列映射

我想实现一个线程安全的队列映射。

我打算从一张空地图开始。如果该键不存在,我想用新的队列创建一个新的映射条目。如果该键确实存在,我想添加到队列中。我建议的实现如下:

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;

public class StackOverFlowExample {

    private final Map<String, ConcurrentLinkedQueue<String>> map = new ConcurrentHashMap<>();

    public void addElementToQueue(String key, String value){
        if (map.containsKey(key)){
            map.get(key).add(value);
        }
        else{
            ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<>();
            queue.add(value);
            map.put(key, queue);
        }           
    }    
}
Run Code Online (Sandbox Code Playgroud)

我担心的是,当多个线程尝试向 Map 添加新值时,第一个线程将使用新的 Queue 放置一个新的 Map 条目,第二个线程将等待,然后为该键放置一个新的 Queue,而不是添加到队列。我的并发/并发 API 知识充其量也很有限。也许并发是为了避免这种情况?非常感谢您的建议。

java queue multithreading concurrenthashmap

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

正则表达式匹配文件中的特定函数及其参数

我正在研究gettext javascript解析器,而且我仍然坚持使用解析正则表达式.

我需要赶上传递给特定的方法调用每个参数_n(_(.例如,如果我在我的javascript文件中有这些:

_("foo") // want "foo"
_n("bar", "baz", 42); // want "bar", "baz", 42
_n(domain, "bux", var); // want domain, "bux", var
_( "one (optional)" ); // want "one (optional)"
apples === 0 ? _( "No apples" ) : _n("%1 apple", "%1 apples", apples) // could have on the same line two calls.. 
Run Code Online (Sandbox Code Playgroud)

这引用了这个文档:http://poedit.net/trac/wiki/Doc/Keywords

我打算两次(和两个正则表达式)这样做:

  1. 捕获所有函数参数_n(_(方法调用
  2. 只抓住那些粗壮的

基本上,我想要一个正则表达式"可以说" 在函数完成后捕获所有内容_n(或者在最后一个括号中_(停止.我不知道是否可以使用正则表达式并且没有javascript解析器.)

还可以做的是"捕获每个"字符串"或'字符串'之后_n( …

regex parsing pcre

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