标签: awk

Perl 搜索和替换

如何使用搜索和替换来更改文件的内容。

我需要能够更改“全部为无”和/或“全部为无”,而不必每次都手动执行数百行。

下面是一个示例文本文件,右边是行号。我已经知道如何打开和关闭文件以进行写入。

线

1define_filter absolute_minimal_filter ------- all
2 define_filter atma_basic_filter -------- ----- none
3define_filter atma_communication_filter -- all
4 define_filter atma_health_filter -------------无
5 define_filter atma_misc_filter --------------- 所有
6 define_filter atma_performance_filter ---- 无
7 define_filter atma_supplemental_filter ---- 无

replace awk perl sed

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

我可以使用什么命令在 sendmail 日志中搜索涉及特定收件人的所有邮件详细信息。

CentOS 5.x | 发邮件

有时,我需要搜索 sendmail 传送日志以找出丢失邮件的原因。这通常涉及两个(或更多)步骤:

第 1 步:在 /var/log/maillog 中搜索用户的电子邮件地址。例如grep -i "someuser@recipientdomain.com" /var/log/maillog

这通常会返回如下内容:

  Jan 11 07:43:34 server-example sendmail[12732]: p937blksdh3: to=<someuser@recipientdomain.com>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=102537, relay=mta.recipientdomain.com. [12.34.56.78], dsn=5.7.1, stat=Service unavailable
Run Code Online (Sandbox Code Playgroud)

第 2 步:然后我将获取唯一的消息名称(在本例中为 p937blksdh3)并进行搜索。例如:grep -i p937blksdh3 /var/log/maillog

我想将第 1 步和第 2 步合并为一个单行代码,并让它自动对其他 id 执行相同的搜索。因此,在单个命令中,我想执行以下操作:

  1. 在 sendmail maillog 中搜索特定字符串。
  2. 确定电子邮件的消息 ID(在上面的示例中,这是 p937blksdh3)。(我猜awk '{print $}'会被使用?)
  3. 搜索相同的日志,但搜索消息 ID(在上面的示例中基本上是grep -i p937blksdh3 /var/log/maillog
  4. 输出步骤 3 的结果。对其他消息 ID 重复此操作。

linux bash sendmail centos awk

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

为什么 AWK 中的随机数在第一次运行后不会改变?

我正在学习AWK,当我第二次使用以下命令时,为什么数字总是相同?

第一次运行:

awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}'
24
29
85
15
59
19
81
17
48
15
Run Code Online (Sandbox Code Playgroud)

第二次运行:

awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}'
24
29
85
15
59
19
81
17
48
15
Run Code Online (Sandbox Code Playgroud)

linux ubuntu awk

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

如何从一行、三行输入 SSH 私钥

我有 ssh 密钥,类似这样的东西

-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

当然这个键不起作用。当我在做手工的时候,像这样的东西

-----BEGIN RSA PRIVATE KEY----- 
my_super_secret_password 
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

有用。当我删除 this-----BEGIN RSA PRIVATE KEY-----和 this 时-----END RSA PRIVATE KEY-----,我的 ssh-key 不起作用。

所以,问题。如何,我可以通过一些命令自动制作,比如sedor awk,或任何其他命令,我如何从这个字符串中制作

-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----

这三个字符串

-----BEGIN RSA PRIVATE KEY----- 
my_super_secret_password 
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。如果你知道关于这个问题的任何其他答案,我很高兴听到你的消息。原因,为什么我需要它,因为我在AWS Secret Manager. 因此,该管理器仅将密钥存储在一行中。

ssh awk sed private-key ssh-keys

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

值得花时间学习 awk 吗?

我很擅长使用 bash 脚本编写,而且我正在学习正则表达式和一些 sed 用法。学习 awk 是否仍然值得,因为那里有所有替代方案。意见?

scripting bash awk sed

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

shell脚本中文件名的年月日

我有像下面这样的文件名

adn_DF9D_20140515_0001.log
adn_DF9D_20140515_0002.log
adn_DF9D_20140515_0003.log
adn_DF9D_20140515_0004.log
adn_DF9D_20140515_0005.log
adn_DF9D_20140515_0006.log
adn_DF9D_20140515_0007.log
Run Code Online (Sandbox Code Playgroud)

我想从文件名中获取年、月、日并创建目录

前任: [[ ! -d "$BASE_DIR/$year/$month/$day" ]] && mkdir -p "$BASE_DIR/$year/$month/$day";

如何实现这一目标并分享您的想法/脚本

scripting awk shell-scripting

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

传递变量问题 - Bash

我有以下问题:

#!/bin/bash
NUM=`cat accounts | wc -l`;
for i in {1..$NUM}
do
   account=`awk "NR==$i" accounts`;
    echo -e "\nAccount: $account\n";
  sudo ./backup_maildir $account;
done
Run Code Online (Sandbox Code Playgroud)

“accounts”是一个包含常规电子邮件地址的文件,每行一个。
backup_maildir 是期望脚本。

执行主脚本时,第 6 行成功回显当前邮件地址,但下一行没有将该字符串传递给 backup_maildir 脚本。如果 $account 变量是 user@domain.com,则传递给 backup_maildir 的字符串是 {user@domain.com?} ?! 这怎么可能?如何解决?

scripting bash sudo awk

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

内存使用正则表达式

您能帮我修改以下单行代码以获得更精确的内存使用吗-现在它只是一个整数,我想在昏迷后包含第一个值。

free -m | awk '/Mem:/ {tot = $2;} /cache:/{printf "%d\n", $3 / tot * 100}'
Run Code Online (Sandbox Code Playgroud)

谢谢

regex awk

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

如何在目录中查找最大的文件 - 忽略目录大小

我想做这样的事情

du -a | sort -rn | head
Run Code Online (Sandbox Code Playgroud)

但我只想提取文件,忽略目录。

明确地说,我想遍历所有子目录,但我不想找到目录大小。只是文件大小。

更新

我也想返回文件的完整路径

linux awk ls du

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

从文本文件中提取 ID

我在下面有一个文本文件

 {
  "data": {
    "assigned-entity-id": null,
    "assigned-entity-type": null,
    "availability-domain": null,
    "compartment-id": "ocid1.tenancy.oc1..dgfmmnusmgibmkdomuijsngimimfimfgiufmgifmdsfsdsgsmgsifmg",
    "defined-tags": {
      "Oracle-Tags": {
        "CreatedBy": "abcd@gmail.com",
        "CreatedOn": "2021-03-20T13:26:04.662Z"
      }
    },
    "display-name": "ABC",
    "freeform-tags": {},
    "id": "ocid1.database.oc1.cd-south-1.amaaaaaago5rdtya6mmvwjfdpdebz7twdxlfdsdssssssaaaaaaadddddd",
    "ip-address": "1.1.1.1",
    "lifecycle-state": "AVAILABLE",
    "lifetime": "XXXXXXX",
    "private-ip-id": null,
    "public-ip-pool-id": null,
    "scope": "REGION",
    "time-created": "2021-03-20T13:26:04.748000+00:00"
  },
  "etag": "cdsssss"
}
{
  "data": {
    "assigned-entity-id": null,
    "assigned-entity-type": null,
    "availability-domain": null,
    "compartment-id": "ocid1.tenancy.oc1..dgfmmnusmgibmkdomuijsngimimfimfgiufmgifmdsfsdsgsmgsifmg",
    "defined-tags": {
      "Oracle-Tags": {
        "CreatedBy": "abcd@gmail.com",
        "CreatedOn": "2021-03-20T13:26:09.523Z"
      }
    },
    "display-name": "ASD",
    "freeform-tags": {},
    "id": "ocid1.database.oc1.cd-south-1.amaaaaaago5rdtya6mmvwjfdpdezzzzzzzzzzzzzzzzzzzddddddddddddddd",
    "ip-address": "2.2.2.2",
    "lifecycle-state": "AVAILABLE",
    "lifetime": "XXXXXXX",
    "private-ip-id": …
Run Code Online (Sandbox Code Playgroud)

linux unix grep awk

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

标签 统计

awk ×10

linux ×4

bash ×3

scripting ×3

sed ×3

centos ×1

du ×1

grep ×1

ls ×1

perl ×1

private-key ×1

regex ×1

replace ×1

sendmail ×1

shell-scripting ×1

ssh ×1

ssh-keys ×1

sudo ×1

ubuntu ×1

unix ×1