小编mon*_*onk的帖子

如何在shell中打印前一周的周数

谁能帮助我得到前一周的号码?

我试着跟随之前在这里问这个.

这个有效,但无法将其与年份数相结合.

echo `date +%W `-1 | bc``
2
Run Code Online (Sandbox Code Playgroud)

以下是我在结合年份和上周数时遇到的失败

echo `date +%Y`wk`date +%W `-1 | bc``
(standard_in) 1: parse error

echo "`date +%Y`wk`date +%W `-1 | bc``"
2016wk03-1 | bc
Run Code Online (Sandbox Code Playgroud)

期望超出:

CUrrentYEARwkPREVIOUSWEEK

喜欢

2016wk02
Run Code Online (Sandbox Code Playgroud)

注意:我试图使用oneliner完成此操作,试图避免在这里使用变量.

unix linux bash shell date

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

单行打印“grep -o”输出

如何grep -o在一行中打印输出?我正在尝试打印:

$ echo "Hello Guys!" |grep -E '[A-Z]'
Hello Guys!
$ echo "Hello Guys!" |grep -Eo '[A-Z]' <----Multiple lines
H
G
$ echo "Hello Guys!" |grep -Eo '[A-Z]'
Run Code Online (Sandbox Code Playgroud)

期望的输出:

HG
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令廉价地实现它,但问题是字母数(在这种情况下为 3)可能是动态的。所以不能使用这种方法。

echo "HEllo Guys!" |grep -oE  '[A-Z]' |xargs -L3 |sed 's/ //g'
HEG
Run Code Online (Sandbox Code Playgroud)

linux bash grep sed xargs

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

按块名称合并两个 ini 文件

如何合并两个ini文件的两个块?

嗨,我有两个 ini 文件,它们以块的形式存储数据,如下所示:

 -->cat f1
[default]
a1=1
b1=2
c1=3

[foo]
d=1
e1=5


 -->cat f2
[default]
a2=5
b2=6

[foo]
c2=7
d2=8
e2=9

[bar]
f2=10
Run Code Online (Sandbox Code Playgroud)

我需要按如下方式合并这两个文件:

[default]
a1=1
b1=2
c1=3
a2=5
b2=6

[foo]
d=1
e1=5
c2=7
d2=8
e2=9


[bar]
f2=10
Run Code Online (Sandbox Code Playgroud)

老实说,我不知道从哪里开始,需要什么逻辑或工具。

我试图获得方向的一些愚蠢的事情是:

awk 'NR==FNR{a[$0]=$0;next} $0 in a{print}' f1 f2
[default]

[foo]

awk -vRS='' '{$1=$1}1' f1 f2 |awk '!a[$1]++'
[default] a1=1 b1=2 c1=3
[foo] d=1 e1=5
[bar] f2=10
Run Code Online (Sandbox Code Playgroud)

awk ini

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

使用 awk 将原始数据转换为 json

我的输入数据如下,我需要将其表述为 JSON。在遗留节点上工作并且没有jq(提前提及)

e1
status: up
temp: 140
alarm: none
e2
status: down
temp: 141
alarm: none
e3
status: up
temp: 144
alarm: 2
e4
status: up
temp: 65
alarm: 2
region: us-east
Run Code Online (Sandbox Code Playgroud)

我希望得到以下输出:

{"e1" : { "status": "up", "temp": "140", "alarm": "none"}}
{"e2" : { "status": "down", "temp": "141", "alarm": "none"}}
{"e3" : { "status": "up", "temp": "144", "alarm": "2"}}
{"e4" : { "status": "up", "temp": "65", "alarm": "2", "region": "us-east"}}
Run Code Online (Sandbox Code Playgroud)

我尝试使用awk但无法按键组合结果来解决问题:

awk '!/:/{node=$0} /:/{print "{\"",node,"\"}",":", …
Run Code Online (Sandbox Code Playgroud)

bash awk

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

检查 cassandra DB 中的表是否为空

我正在尝试找到一种方法来确定 Cassandra DB 中的表是否为空。

cqlsh> SELECT * from examples.basic ;

 key | value
-----+-------

(0 rows)
Run Code Online (Sandbox Code Playgroud)

我正在运行count(*)以获取行数的值,但收到警告消息,所以我想知道是否有更好的方法来检查表是否为空(零行)。

cqlsh> SELECT count(*) from examples.basic ;

 count
-------
     0

(1 rows)

Warnings :
Aggregation query used without partition key

cqlsh>
Run Code Online (Sandbox Code Playgroud)

cassandra

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

在 perl 或 sed 中默认不匹配的反向引用

有没有办法回到默认引用的变量$1$2$3在这里?

start="a" hi="1"  bye="2"
start="b" bye="3"
start="c" hi="4"
Run Code Online (Sandbox Code Playgroud)

我正在使用此命令过滤掉:

perl-ne 'print if s/.*start="([^"]+).*?hi="([^"]+).*?bye="([^"]+).*/$1 $2 $3/g'
a 1 2
Run Code Online (Sandbox Code Playgroud)

有没有办法生成以下结果:

a 1 2
b null 3
c 4 null
Run Code Online (Sandbox Code Playgroud)

我还搜索了默认一个反向引用的变量,但在这方面没有关于它的可行解决方案。例如,在 bash 中,我们使用${var:-null}默认var为 string null

regex perl sed

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

使用主机的入口规则

有人可以帮忙发现ingress-2入口规则的问题吗?为什么ingress-1有效与ingress-2无效。

我的设置描述,我有两个部署:

第一次部署是nginx
第二次部署是httpd

这两个部署均通过分别名为和 的ClusterIP服务公开。所有这些都适合服务。但是,在为这些服务设置入口时,我无法使用(如 中所述)设置入口。但是,当我使用时,一切正常。nginx-svchttpd-svcendpointshostingress-2ingress-1

// 我的主机文件用于名称解析

grep myapp.com /etc/hosts
127.0.0.1        myapp.com
Run Code Online (Sandbox Code Playgroud)

// 部署详细信息

kubectl get deployments.apps
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   3/3     3            3           29m
httpd   3/3     3            3           29m
Run Code Online (Sandbox Code Playgroud)

// 服务详情

kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.152.183.1     <none>        443/TCP   7h48m
nginx-svc    ClusterIP   10.152.183.233   <none>        80/TCP    28m
httpd-svc    ClusterIP   10.152.183.58    <none>        80/TCP    27m
Run Code Online (Sandbox Code Playgroud)

// …

kubernetes nginx-ingress microk8s

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

基于 bash 或 awk 中的数组内容的条件打印

我有一个包含以下内容的输入文件:

SS SC
a 1
b 2
d 5
f 7
Run Code Online (Sandbox Code Playgroud)

我有一个输入 bash 数组如下:

echo "${input[*]}"
a b c d e f
Run Code Online (Sandbox Code Playgroud)

我需要创建一个输出:

1. 在第一列中打印数组的所有元素
2. 在第二列中,我需要根据元素的存在打印 0 或 1。

为了解释这一点,在名为 的输入数组中input,我有a,b,c,d,e,f. Nowa存在于输入文件中,所以输出应该是a 1,而c在输入文件中缺少,所以输出应该c 0在输出中。

例如:预期结果:

SS RESULT
a 1
b 1
c 0
d 1
e 0
f 1
Run Code Online (Sandbox Code Playgroud)

尝试split对 bash 数组进行迭代,以尝试对其进行迭代,但是每行打印(awk 的工作方式),它变得太难以处理了。awk -v par="${input[*]}" 'BEGIN{ n = split(par, a, " ")} {for(i=0;i<=n;i++){printf "%s\n ", …

bash awk sed

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

向空的列添加 null

我正在尝试使用perlor将空的列设置为空awk,以查找列数,可以使用标题的列数。我尝试使用perl和一些正则表达式来执行解决方案。但是,输出看起来非常接近所需的输出,但如果仔细观察,第一行会显示不正确的数据。

输入数据:

id      name           type          foo-id  zoo-id  loo-id-1  moo-id-2
-----  ---------------  -----------  ------  ------  ------  ------
0      zoo123        soozoo          8               31        32
51     zoo213        soozoo          48      51
52     asz123        soozoo          47      52
53     asw122        soozoo          1003    53
54     fff123        soozoo          68      54
55     sss123        soozoo          75      55
56     ssd123        soozoo          76      56
Run Code Online (Sandbox Code Playgroud)

预期输出:

0      zoo123        soozoo          8       null      31        32
51     zoo213        soozoo          48      51        null      null
52     asz123        soozoo          47      52        null      null …
Run Code Online (Sandbox Code Playgroud)

perl awk

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

标签 统计

awk ×4

bash ×4

sed ×3

linux ×2

perl ×2

cassandra ×1

date ×1

grep ×1

ini ×1

kubernetes ×1

microk8s ×1

nginx-ingress ×1

regex ×1

shell ×1

unix ×1

xargs ×1