在下面的shell脚本中,如何将${today}插入到单独的现有文件index.html中的第4行?( index.html中的第1-3行已经有一些代码。第4行为空。第5行-EOL有一些html代码。)
#!/bin/sh
Today=$(date "+%Y.%m.%d-%H.%M.%S")
#insert ${today} into a separate existing file (index.html) in line 4
#<to-do>发布于 2013-07-20 23:40:11
sed实用程序可以在特定行处插入文本。这可能不是表达它的最佳方式;它会覆盖在第4行找到的任何内容。
Today=$(date "+%Y.%m.%d-%H.%M.%S")
sed -i -e "4s/^.*$/$Today/" index.html-i参数告诉sed就地编辑--它有效地覆盖了输入文件。我认为对于您的问题,sed是比awk更好的选择。为了进行测试,删除-i参数,它将改为写入标准输出。
如果您希望仅在第4行为空行(无空格,无字符)时才执行此操作,请改用此命令。
Today=$(date "+%Y.%m.%d-%H.%M.%S")
sed -i -e "4s/^$/$Today/" index.html发布于 2013-07-21 00:27:54
我将使用awk来完成以下操作:
awk 'NR==4 {print strftime("%Y.%m.%d-%H.%M.%S", systime())} 1' file如果不想在awk中生成日期字符串,也可以传入一个变量
Today=$(date "+%Y.%m.%d-%H.%M.%S")
awk -vtoday=$Today 'NR==4 {print today} 1' filehttps://stackoverflow.com/questions/17763691
复制相似问题