簡體   English   中英

如何刪除字符? 從日志文件名?

[英]How do I remove the character ? from a log file name?

每次運行劇本時,我都有一個由 ansible 創建的日志文件。 不確定為什么會有 ? 插入。

getcpu_and_mem_lin?2020-08-25.log

我如何刪除? 在文件中?

我將如何添加 . 代替 ? 反而?

一些背景:我有一個外殼包裝器,用於 ansible 給我一個新的日志文件,其中包含劇本名稱和日期/時間,在我的 .bashrc 中有一個別名。

ansible-playbook-wrapper.sh

#!/bin/bash

export ANSIBLE_LOG_PATH=/home/myuser/log/$(echo $1 | cut -d . -f 1 && date "+%Y-%m-%d").log

ansible-playbook $@

在我的 .bashrc 中


alias ansible-playbook="/home/myuser/ansible-playbook-wrapper.sh"

問: “我如何添加 . 來代替 ?”

簡短回答:分開命令並在它們之間放置點

$(echo $1 | cut -d . -f 1).$(date "+%Y-%m-%d")

包裝器的第一個參數應該是劇本文件。 讓我們用playbook.yml替換$1並測試它

shell> echo playbook.yml | cut -d . -f 1 && date "+%Y-%m-%d"
playbook
2020-08-26

這給了我們 2 行。 這不是我們想要的。 讓我們測試一下環境變量

shell> export ANSIBLE_LOG_PATH=/home/myuser/log/$(echo playbook.yml | cut -d . -f 1 && date "+%Y-%m-%d").log

shell> echo $ANSIBLE_LOG_PATH
/home/myuser/log/playbook 2020-08-26.log

由於新線, playbook2020-08-26之間有空間。 讓我們修復它並單獨運行命令

shell> export ANSIBLE_LOG_PATH=/home/myuser/log/$(echo playbook.yml | cut -d . -f 1)$(date "+%Y-%m-%d").log

shell> echo $ANSIBLE_LOG_PATH
/home/myuser/log/playbook2020-08-26.log

好的。 沒有空間。 讓我們讓它更具可讀性並加上一個點'.' playbook2020-08-26之間

shell> export ANSIBLE_LOG_PATH=/home/myuser/log/$(echo playbook.yml | cut -d . -f 1).$(date "+%Y-%m-%d").log

shell> echo $ANSIBLE_LOG_PATH
/home/myuser/log/playbook.2020-08-26.log

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM