如何使用搜索和替换来更改文件的内容。
我需要能够更改“全部为无”和/或“全部为无”,而不必每次都手动执行数百行。
下面是一个示例文本文件,右边是行号。我已经知道如何打开和关闭文件以进行写入。
线
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 ---- 无
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 执行相同的搜索。因此,在单个命令中,我想执行以下操作:
我正在学习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) 我有 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. 因此,该管理器仅将密钥存储在一行中。
我很擅长使用 bash 脚本编写,而且我正在学习正则表达式和一些 sed 用法。学习 awk 是否仍然值得,因为那里有所有替代方案。意见?
我有像下面这样的文件名
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";
如何实现这一目标并分享您的想法/脚本
我有以下问题:
#!/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?} ?! 这怎么可能?如何解决?
您能帮我修改以下单行代码以获得更精确的内存使用吗-现在它只是一个整数,我想在昏迷后包含第一个值。
free -m | awk '/Mem:/ {tot = $2;} /cache:/{printf "%d\n", $3 / tot * 100}'
Run Code Online (Sandbox Code Playgroud)
谢谢
我想做这样的事情
du -a | sort -rn | head
Run Code Online (Sandbox Code Playgroud)
但我只想提取文件,忽略目录。
明确地说,我想遍历所有子目录,但我不想找到目录大小。只是文件大小。
更新
我也想返回文件的完整路径
我在下面有一个文本文件
{
"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)