/home/digadm02/.bash_history:#1520325239 /home/digadm02/.bash_history:sudo su
我在文件 test.txt 中有这些行。我必须搜索“#1520325239”的模式并将其替换为从命令“date -d @1520325239”获得的值。像这样的线路还有很多。我必须读取每一行并将其替换到同一个文件中。
答案1
如果我很理解你的话,时间戳不仅仅是一个,而是许多类似的行。这个脚本应该做你想要的替换:
#!/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
答案2
您可以根据需要使用以下命令
sed -i s/#1520325239/$(date -d @1520325239)/g .bash_history
答案3
使用sed
sed -i "/#1520325239/c$(date -d @1520325239)" test.txt
-i 将就地修改文件。省略“i”首先测试您的结果。