我想通过命令行输入一个字符串来bash脚本,然后输出到该字符串到具有当前系统时间的文本文件,如下所示。
outputLog.txt
name1 = Tue Jan 20 14:00 19 IST 2012
name2 =Tue Jan 20 14:05 19 IST 2012
name3 = Tue Jan 20 14:20 19 IST 2012
name4 =Tue Jan 20 14:45 19 IST 2012
我使用以下bash脚本获取上面的输出
#!/bin/bash
echo "$1 = $(date)" >>/root/Desktop/scripts/outputLog.txt
In command line
[root@localhost desktop]# ./myscript.sh name1
是否有任何可能的方法来搜索通过命令行输入的名称已在生成的输出文本文件中找到?如果找到则更新该名称字符串的当前系统时间
在命令行中输入
[root@localhost desktop]# ./myscript.sh name1
name1已在outputLog.txt中占用。我想将文本文件输出为
name1 = Tue Feb 21 14:00 19 IST 2012(todays current system time)
name2 =Tue Jan 21 14:05 19 IST 2012
name3 = Tue Jan 21 14:20 19 IST 2012
name4 =Tue Jan 21 14:45 19 IST 2012
如何使用当前系统时间更新该名称字符串。
答案 0 :(得分:3)
#!/bin/bash
fgrep "${1}" /YOUR/OUTPUT/LOG &&
sed -i "/${1}/ s/.*/${1} $(date)/" /YOUR/OUTPUT/LOG ||
echo "${1} $(date)" >> /YOUR/OUTPUT/LOG
可能适合你。 注意如果您的nameN
可以包含任何/
,则会失败。
答案 1 :(得分:0)
在添加新时间戳之前,您可以使用grep -v
删除给定用户名的现有条目。