[英]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
由於新線, playbook
和2020-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
好的。 沒有空間。 讓我們讓它更具可讀性並加上一個點'.' 在playbook
和2020-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.