linux shell 用啥命令可以修改脚本中全部日期为当前系统日期?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell 用啥命令可以修改脚本中全部日期为当前系统日期?相关的知识,希望对你有一定的参考价值。

假设脚本名为test,其内容为:
cccccc./backup/20140219/aaa_20140813_aaa.a
/backup/20140813/aaa_20140813_aaa.a
/backup/20120525/aaa_20140813_aaa.a
/backup/20130612/aaa_20140813_aaa.a
/backup/20110119/aaa_20140813_aaa.a

现在想用一个命令直接把test脚本内容中的所有日期修改为当前系统日期,如何修改,当前系统日期可以用调用$(date +"%Y%m%d")。求各路大侠们给新手一个方法,谢谢。
各位,我可能没说清楚,我的想法是用命令去修改,不是用vi编辑器,脚本里面唯一要求就是修改这些日期为当期系统日期,但是这些已有的日期又都不是固定的日期,上面这段我只是举了个例子!

不过此命令没有改变源文件,可以将命令输出到另一个文件中。

这里认为8个数字的都是日期,如果有不是日期的情况,需要更改正则表达式进行排除。

参考技术A 1、你是要修改test为当前时期,还是想将脚步的结果修改为当前日期
2、如果修改结果可以定义个变量
#!/bin/sh
ymd=`date +%Y%m%d`

cccccc./backup/$ymd/aaa_$ymd_aaa.a
/backup/$ymd/aaa_$ymd_aaa.a
/backup/$ymd/aaa_$ymd_aaa.a
/backup/$ymd/aaa_$ymd_aaa.a
/backup//$ymd/aaa_$ymd_aa.a
3、如果仅仅修改test可以用vi或sed追问

脚本已经固定了的,我现在是要用命令去修改这个test脚本中的日期(该日期不是固定的,但都是年月日)为当前系统日期,要求是不用VI编辑器,sed命令如何修改该脚本?

追答

如果只是修改20140813:
#!/bin/sh

yesterday=`date -d yesterday +%Y%m%d`
today=`date +%Y%m%d`
sed -i "s/$yesterday/$today/" test

追问

不只是20140813呢,脚本里的日期是不固定的,如果只是昨天前天,我自己应该也好弄~能有其它办法么?

参考技术B sed 或awk 去替换
如果日期已经确定 vi里的替换是否可行。追问

sed或awk如何操作?
脚本里面的日期是不固定的,很多,所以想用命令去替换全部为当前系统日期!要求是不能用vi编辑器的。

参考技术C 你学习shell呢还是想解决问题?文件夹名要改吗?追问

学习吧,就是用什么方法能把脚本中的日期,修改为当期系统日期,不是单单用vi进去修改。

追答

哦,不会shell不捣乱了,我以为什么方法都行呢

请问linux把shell的信息全部输出到文本文件的命令是啥?

比如windows的cmd就可以用命令后面加上“ > D:\data.txt”来实现
那么linux有没有这样的命令呢?

谢谢~~~~~
这种方法我早就试过了,不行:
make uboot > /data.txt
没反应

user 创建新的用户账户
alias 设置命令的别名
bzips .bz2的文件压缩程序
cal 月历显示
cat 将所有内容输出到标准输出设备
chfn 更改finger命令显示的信息
chgrp 变更文件与目录的所属组
chmod 更换文件或目录的权限
chown 更换文件或目录的拥有者或所在组
clear 清除画面上的信息
col 滤除控制字符
cp 复制文件或目录
crontab 设置定时器
date 设置显示系统时间及日期
dd 由键盘输入文件中的数据,然后依照指定格式来转换数据,再输出至所指定的文件或屏幕上
df 显示磁盘文件系统的使用状况
dmesg 显示开机信息
du 显示目录或文件所占磁盘空间
e2fsck 检查ext2文件系统
echo 文字显示
edquota 编辑quota
egrep 查找文件中符合条件的字符串
exec shell执行命令后即交出控制权
export 设置显示环境变量
fdisk 磁盘分割(分区)
fg 前台执行程序或命令
fgrep 查找文件中符合条件的字符串
file 识别文件类型
find 查找文件或目录
finger 显示用户信息
free 查看内存状态
fsck 检查文件系统并试着修复错误
ftp 传输文件
grep 搜索文件中符合条件的字符串
groupadd 创建组
groupdel 删除组
groupmod 改变组识别码或名称
gunzip 文件解压缩
gzip 文件压缩
halt 关闭系统
help shell创建命令内容
history 列出所有使用过的命令
hostname 查询及设置主机名称
id 显示用户ID及所属的组ID
ifconfig 显示或设置网络上状态
insmod 加载模块
jobs 显示正在后台执行的工作
kill 删除执行中的程序或工作
last 列出目前与过去登录系统的用户相关信息
less 显示文件内容
lilo 安装内核加载、开机管理程序
linuxconf 设置Linux系统
ln 连接文件或目录
locate 寻找文件
login 登录系统
logout 注销系统
ls 列出目录内容
lsmod 显示已加载系统的模块名称
mail E-mail管理程序
make 编译系统核心或模块
man 在线查询命令
mcopy 复制MS-DOS文件
mdel 删除MS-DOS文件
mdeltree 删除MS-DOS文件及包含的子目录文件
mdir 显示MS-DOS目录
mkbootdisk 创建目前系统的引导盘
mkdir 创建目录
mke2fs 创建ext2文件系统
mkfs 创建各种文件系统
more 一页一页地显示文件内容(文本文件)
miunt 挂入文件系统
mouseconfig 设置鼠标相关参数
mv 移动或更名现有的文件或目录
netconfig Red Hat Linux用来设置网络功能的图形接口程序
netstat 显示目前系统的网络状态
nice 变更程序执行时的优先等级
nohup 在用户注销系统后继续以后台的方式执行指定的命令
open 查找第一个可使用的虚拟终端,并执行位于“--”符号后的命令
passwd 提供管理员及用户管理或变更密码
patch 利用修补文件来修改源文件
pine 邮件处理程序,它可收发电子邮件及浏览新闻组
ping 使用ICMP对远程主机发出要求响应的信息,以侦测远程主机的网络功能是否正常
ps 显示程序执行的状况
pwd 显示目前的工作目录
quota 查询磁盘空间限制以及使用情形
quotacheck 检查磁盘使用空间及限制
quotaoff 关闭磁盘使用空间限制
quotaon 开启磁盘使用空间限制
reboot 停止系统运作并重新开机
renice 重新调整程序执行的优先级
repquota 显示磁盘空间限制状况
rm 删除文件或目录
rmdir 删除目录
rpm 管理Red Hat Linux套件
set 设置Shell的执行方式
setup 设置公用程序,可设置的选项包括:登录认证方法、键盘配置、
鼠标配置、开机启动服务、声卡本配置、时区设置和 X Window配置等
shutdown 系统关机
startx 启动 X Window
stat 显示inode内容
su 变更用户身份
sync 将内存缓冲区内的数据写入磁盘
tail 列出文件内容最后部分
talk 和其他用户交谈
tar 文件备份
telnet 登录远程主机
top 显示及管理执行中的程序
traceroute 显示封包到远程主机间的详细路径
umask 在创建文件时预设的权限屏蔽
umount 卸载文件系统
unalias 删除别名
uname 显示系统信息
uncompress 将.Z文件解压缩
unzip 将.Zip文件解压缩
useradd 创建用户账号
userdel 删除用户账户
vi 编辑文本文件
w 显示目前登录系统的用户信息
wall 将信息传送至每位终端用户
whereis 查找文件,预设whereis去查找的文件包括:/bin、/etc、/sbin、
/usr/bin、/usr/etc、/usr/games、/usr/include、/usr/lib、
/usr/local、/usr/man、/usr/sbin、/usr/src、/usr/local/bin、
/usr/local/etc、/usr/local/game、/usr/local/lib 和/usr/local/man>
which 在环境变量¥PATH 设置的目录中,搜索符合条件的文件
who 显示目前登录系统的用户信息
whoami 显示用户名称
whois 搜索并显示用户信息
write 可传送信息给另一位登录的用户
Xconfigurator 设置 Xfree86
xf86config 设置XFree86
zip 压缩程序
参考技术A 有的~~~也是>就可以
>>是追加到文件
比如ps > info.txt
就可以~
参考技术B 和windows一样,ifconfig > /root/test.txt本回答被提问者采纳 参考技术C 跟你那命令差不多
也是在后面加个 > /tmp/abc.txt

以上是关于linux shell 用啥命令可以修改脚本中全部日期为当前系统日期?的主要内容,如果未能解决你的问题,请参考以下文章

linux指令 sed指令怎么选择列

在linux中怎么使用sh执行当前目录的程序

Linux列出当前目录下的文件和目录用啥命令

请问linux把shell的信息全部输出到文本文件的命令是啥?

linux学习 – shell脚本

如何在Linux shell中获取本机主机名