小编BeG*_*een的帖子

Sed第二次更换

我想用sed删除一个模式,只是在第二次出现时.这是我想要的,删除一个模式,但第二次出现.

file.csv中有什么:

a,Name(null)abc.csv,c,d,Name(null)abc.csv,f
a,Name(null)acb.csv,c,d,Name(null)acb.csv,f
a,Name(null)cba.csv,c,d,Name(null)cba.csv,f
Run Code Online (Sandbox Code Playgroud)

需要输出:

a,Name(null)abc.csv,c,d,Name,f
a,Name(null)acb.csv,c,d,Name,f
a,Name(null)cba.csv,c,d,Name,f
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

sed -r 's/(\(null)\).*csv//' file.csv
Run Code Online (Sandbox Code Playgroud)

这里的问题是正则表达式太贪婪,但我不能让它停止.我也试过这个,跳过第一次出现的"null":

sed -r '0,/null/! s/(\(null)\).*csv//' file.csv
Run Code Online (Sandbox Code Playgroud)

也试过,但贪婪的正则表达式仍然是问题.

sed -r 's/(\(null)\).*csv//2' file.csv
Run Code Online (Sandbox Code Playgroud)

我读过,?可以让正则表达式"懒惰",但我不能让它锻炼.

sed -r 's/(\(null)\).*?csv//' file.csv
Run Code Online (Sandbox Code Playgroud)

regex bash sed non-greedy

5
推荐指数
2
解决办法
4790
查看次数

Case Statement总是给出1. MySQL

CASE在MYSQL中遇到了语句问题.它总是给我1.

这是我的两个表:

CREATE TABLE A (
    a VARCHAR(200),
    b VARCHAR(200),
    c VARCHAR(200),
    PRIMARY KEY (a)
);
CREATE TABLE B (
    a VARCHAR(200),
    d VARCHAR(200),
    e VARCHAR(200)
    FOREIGN KEY (a) REFERENCES A(a)
);
Run Code Online (Sandbox Code Playgroud)

所以我正在进行一个简单的加入,AB喜欢这样:

CREATE VIEW C AS (
SELECT
         a,
         b,
         CASE
             WHEN '0' THEN '0'
             WHEN '1' THEN '1'
             WHEN 'WEEKDAY' THEN '0'
             WHEN 'WEEKEND' THEN '1'
             ELSE ''
         END AS c,
         d,
         e
FROM
    B
RIGHT OUTER JOIN A ON
    B.a = …
Run Code Online (Sandbox Code Playgroud)

mysql sql view case

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

标签 统计

bash ×1

case ×1

mysql ×1

non-greedy ×1

regex ×1

sed ×1

sql ×1

view ×1