Linux
搜尋模式並替換文件中的值
/home/digadm02/.bash_history:#1520325239 /home/digadm02/.bash_history:sudo su
我在文件 test.txt 中有這些行。我必須搜尋“#1520325239”的模式並將它們替換為從命令“date -d @1520325239”中獲得的值。有很多這樣的行。我必須閱讀每一行並將其替換在同一個文件中。
如果我理解你的話,時間戳不僅僅是一個,而是許多類似的行。這個腳本應該做你想要的替換:
#!/bin/bash # get timestamps from the file dates=`sed -e '1,$s/^.*#\(.*\) \/.*/\1/' /tmp/test.txt` for date in $dates do # get human readable format from timestamp newdate=`date -d @${date}` # replace timestamp with human readable date sed -i "1,\$s/\#$date/$newdate/" /tmp/test.txt done
您可以根據需要使用以下命令
sed -i s/#1520325239/$(date -d @1520325239)/g .bash_history