linux下修改以某个字母开头的文件后戳

1、怎么在linux下修改以某一字母开头的文件后戳

源文件内容

[[email protected] test]# ls
stu10.txt.php  stu3.txt.php  stu6.txt.php  stu9.txt.php  test3.txt
stu1.txt.php   stu4.txt.php  stu7.txt.php  test1.txt     test4.txt
stu2.txt.php   stu5.txt.php  stu8.txt.php  test2.txt     test5.txt

现在我们将以s开头的所有文件的后戳修改为.html

第一步:先将以s开头的文件找出来

[[email protected] test]# find -type f -name "s*"
./stu8.txt.php
./stu7.txt.php
./stu6.txt.php
./stu9.txt.php
./stu3.txt.php
./stu4.txt.php
./stu2.txt.php
./stu5.txt.php
./stu1.txt.php
./stu10.txt.php

第二步:取文件的前半部分

[[email protected] test]# find -type f -name "s*"|awk -F"[./]+" ‘{print $2}‘
stu8
stu7
stu6
stu9
stu3
stu4
stu2
stu5
stu1
stu10

第三步:使用拼接的方法来实现文件后戳的修改

[[email protected] test]# find -type f -name "s*"|awk -F"[./]+" ‘{print "mv "$2".txt.php "$2".html"}‘
mv stu8.txt.php stu8.html
mv stu7.txt.php stu7.html
mv stu6.txt.php stu6.html
mv stu9.txt.php stu9.html
mv stu3.txt.php stu3.html
mv stu4.txt.php stu4.html
mv stu2.txt.php stu2.html
mv stu5.txt.php stu5.html
mv stu1.txt.php stu1.html
mv stu10.txt.php stu10.html

第四步:将拼接的内容交给bash来处理

[[email protected] test]# find -type f -name "s*"|awk -F"[./]+" ‘{print "mv "$2".txt.php "$2".html"}‘|bash

第五步:查看修改后的内容

[[email protected] test]# ll
total 0
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu10.html
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu1.html
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu2.html
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu3.html
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu4.html
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu5.html
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu6.html
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu7.html
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu8.html
-rw-r--r--. 1 root root 0 Jul 22 11:47 stu9.html
-rw-r--r--. 1 root root 0 Jul 22 11:41 test1.txt
-rw-r--r--. 1 root root 0 Jul 22 11:41 test2.txt
-rw-r--r--. 1 root root 0 Jul 22 11:41 test3.txt
-rw-r--r--. 1 root root 0 Jul 22 11:41 test4.txt
-rw-r--r--. 1 root root 0 Jul 22 11:41 test5.txt

可以看到已经将所有以s开头的文件名后戳全部修改为.html

2、以上修改文件后戳的方法还可以使用脚本来实现

脚本内容如下

#!/bin/bash
workDir=/server/file/test        将目录定义为一个变量
if [ -d $workDir ];then          判断目录是否存在,存在则进入,不存在则推出
  cd $workDir
else
  exit 1
fi
for i in $(find -type f -name "[s]*")    用for循环来查找以s开头的文件
do
  char=`echo $i|awk -F"[/.]+" ‘{print $2}‘`     定义要修改的文件前半部分
  mv $i ${char}.html                     将文件修改为想要的内容
done
时间: 2024-10-23 09:09:09

linux下修改以某个字母开头的文件后戳的相关文章

linux下修改MySQL root密码后数据库消失

Linux系统下如果没有通过password()函数修改mysql的root密码就会导致mysql数据库消失.有些人可能不知道而直接修改了mysql的root密码,于是产生了mysql数据库消失的问题,这个时候该怎么处理呢? 可以用下面的办法解决: 1.修改mysql数据库目录配置文件:my.cnf(或my.ini) [mysqld]下添加: skip-grant-tables 2.重启mysql服务,然后用mysql 登录. 3.进入后,可以看到,mysql数据库已呈现,然后修改密码: upd

linux下修改文件的用户组chgrp和文件所有者chown

1. linux下修改文件用户组 chgrp: change group的简写,修改文件所属的用户组. chgrp users test.log 修改后查看 ls -l -rwxrwx--- 1 work users 0 Jun 8 15:46 test.log 如果要修改该目录下所有文件和目录,使用-R参数. chgrp -R users test 要被改变的group名,必须在 /etc/group 文件中. /etc/group文件记录系统中所有的组名称. 2. linux下修改文件所有者

Linux下修改图片格式

Linux下修改图片格式 在终端上安装imagemagick sudo apt-get install imagemagick cd到相应的图片所在目录 #把 .png 转到 .jpg convert *.png *.jpg rm -r *.png 上面的方法产生的图片,可能在window上是不能打开的.下面用matlab写了个脚本,可以保证在两个平台上都能用. imagePath='sequences/SegTrack/birdfall2/'; files=dir([imagePath,'*.

Linux下修改Oracle监听地址

如果你的服务器换了ip怎么办? 如果你的服务器换了名字怎么办? 以前的小伙伴怎么办? 以前的老客户怎么办? 没关系,简单教你修改监听地址,老朋友随便找! 想要修改监听地址首先要找到两个文件,确定两样东西! 第一 你的主机名字? 第二 你的IP地址? 第三 你的listener.ora在哪里? 第四 你的tnsnames.ora在哪里? 原来的文件监听的是localhost,这个名字在/etc/hosts中会被映射成Ip地址127.0.0.1 lisenter.ora 目录在 /opt/oracl

【修改端口号】linux下修改apache,nginx服务端口号

一.linux下修改apache端口号 yum安装后,apache配置文件: /etc/httpd/conf/httpd.conf 找到apache目录下的 httpd.conf, 使用vi 打开,找到 port=80 这一行, 把80改成在此服务器上没有用到的端口号,保存退出. 二.linux下修改nginx端口号 yum安装后,nginx配置文件路径:/nginx/nginx-1.8.0/conf/nginx.conf 把80改成在此服务器上没有用到的端口号

Linux 下修改Tomcat使用的JVM内存大小

我的服务器的配置: # OS specific support.  $var _must_ be set to either true or false. JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m" 正文: 常见的内存溢出有以下两种: java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryErro

Linux下修改Oracle数据库字符集命令

常见情形:从服务器备份Oracle数据库后再到本地机器上还原Oracle数据库的时候经常会碰见数据库字符编码不一致的情况,可以用以下命令来修改本地的Oracle数据库字符编码,然后顺利还原Oracle数据库到本地机器上 操作指令: [[email protected] ~]$ sqlplus /nolog SQL> conn /as sysdba; SQL>select userenv('language') from dual; SQL>SHUTDOWN IMMEDIATE SQL&g

深入探讨下Linux下修改hostname的五个问题(四)

经过了前面几天的得探讨,相信大家对于如何在Linux下修改hostname已经有了很深的认识了,那么我们今天接着来聊第四个问题. 问题4: hostname跟/etc/hosts 下配置有关系吗? 如果从我上面的实验来看,其实hostname跟/etc/hosts下的配置是没有关系的.hostname的修改.变更完全不依赖hosts文件. 其实hosts文件的作用相当如DNS,提供IP地址到hostname的对应.早期的互联网计算机数量少,单机hosts文件里足够存放所有联网计算机.不过随着互联

linux下修改文件的所有者和所属组chown

owner表示所有人 linux下修改文件的所有者和所属组 chown命令 (注意:需要sudo 变为root来操作chown 才生效)同时所有者或所属组必须存在sudo chown root:root aa -R 递归的更改aa文件夹下所有的文件root:root 表示==>所有者:所属组