/home/digadm02/.bash_history:#1520325239 /home/digadm02/.bash_history:sudo su
test.txt ファイルに次の行があります。 "#1520325239" パターンを検索し、"date -d @1520325239" コマンドで取得した値に置き換える必要があります。このようなラインがたくさんあります。各行を読み、同じファイルに置き換える必要があります。
答え1
よく理解している場合、タイムスタンプは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」を省略してください。