首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux shell利用sed如何批量更改文件名详解

`ls | grep .jpg` do newfile=`echo $file | sed 's/-//g'` mv $file $newfile done 这里使用sed进行标准输出字符串替换...done 分析 上述示例首先通过 ls grep 命令得到待改名文件列表,然后用 sed 命令进行字符串替换,最后再使用 mv 命令来完成文件名更改。...要解决这个问题,我们可以将 IFS(内部字段分隔符)设置为换行符 \n,这样一来,for 循环就会按行来获取变量,确保每次获取的确实是一个完整文件名。...设置 IFS 变量命令需要放在 for 循环之前: IFS=$'\n' for file in `ls` do ... done 也可以直接使用 while read 命令一次读取一行到变量 file...中: ls | grep "*.txt" | while read file do ... done 使用 find 获取文件列表 之前示例中,我们是通过 ls 命令来获取文件列表。

4K20

Shell入门指南

$str 变量使用 变量可以赋值给另一个变量打印,当变量被使用时候需要在变量名称前面加上$符号,还有另一种方式是把变量名放在${}括号中使用,可以把命令执行结果作为右赋值给变量 str2=$strecho...cat命令结合for in循环处理 注意:$IFS是文件循环处理分隔符,按按行处理数据需要把该设置为$'\n',处理完成之后恢复旧 echo "=======文件======="file="data"IFS_OLD...流编辑 Sed流编辑结合正则表达式可以方便对文本文件进行查询、修改、删除、增加等操作 注意:osx系统自带sed命令标准gnu-sed使用方式上有些差别,所以以下篇幅所谈论到sed都是标准gnu-sed...d 删除 sed pattern/replacement 查找对应模式匹配模式替换内容 sed flag 有4种可用替换标记: 数字,表明新文本将替换第几处模式匹配地方; g,表明新文本将会替换所有匹配文本...,用户输入会显示在同一行 使用while循环获取用户输入,在while环中使用case分支处理不同操作 以下脚本是injectContentShell#injectedContentShell.sh

1.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

20 分钟 Shell 入门深度教程

文件 2.1 文件读取 文件读取可以使用cat命令结合for in循环处理 注意:$IFS是文件循环处理分隔符,按按行处理数据需要把该设置为$'\n',处理完成之后恢复旧 echo "=====...Sed流编辑 Sed流编辑结合正则表达式可以方便对文本文件进行查询、修改、删除、增加等操作 注意:osx系统自带sed命令标准gnu-sed使用方式上有些差别,所以以下篇幅所谈论到sed都是标准...d 删除 sed pattern/replacement 查找对应模式匹配模式替换内容 sed flag 有4种可用替换标记: 数字,表明新文本将替换第几处模式匹配地方; g,表明新文本将会替换所有匹配文本...脚本文件中代码片段,使用s操作替换内容,有以下几个要点 s/'"${original_class_name}"'/'"${result_class_name}"'/g,使用s操作,注意pattern...,用户输入会显示在同一行 使用while循环获取用户输入,在while环中使用case分支处理不同操作 以下脚本是injectContentShell#injectedContentShell.sh

1.3K60

Linux批量替换某种类型文件中字符串-sedgrep命令使用

今天在修改rpm打包spec配置文件时,遇到一个问题就是:需要将100个左右源代码中spec配置文件中Release一行中发布版本号使用宏变量%{_release}进行替换。    ...如果要手工修改需要修改100多次,但是使用sedgrep命令很简单: sed -i "s/Release: 1/Release: %{_release}/g" 'grep Release:...Linux下批量替换多个文件中字符串简单方法。 用sed命令可以批量替换多个文件中字符串。.../g" 'grep mahuinan -rl /www' 这是目前linux最简单批量替换字符串命令了!...2、Linux shell 批量替换多个文件中字符串 Linux shell 批量替换多个文件中字符串 接 3、SED与AWK学习笔记 SED与AWK学习笔记

5.5K20

Shell 编程日记

Shell 脚本执行顺序依旧遵循“从上往下、从左往右”顺序; Shell 脚本就是把一些命运算符写进脚本文件,然后完成批量重复性工作而已; Shell 脚本支持流程控制,如 for、while、if...,如果下标元素存在,则会被替换 unset arry_sname[3] // 删除下标为3数组元素 unset arry_snme...语句 // while 从某种意义上来讲,可以说是 if-then 语句 for 循环混杂体 // while 语句中,只有当测试条件为 true 时,才会不断循环下去,直至遇到 false while...、awk 用法 sed 编辑器(流编辑器) // sed 常见用法 // 常规替换字符,默认情况只替换第一次匹配到字符串 sed 's/str_old/str_new' file // 按要求替换(...flag) sed 's/str_old/str_new/3' file // 匹配到第三处替换,3 是需要替换第几次匹配到意思 sed 's/str_old/str_new/g' file

18520

【笔记归档】shell学习笔记

until list; do list; done ## while 常用例子 getopts 常在循环中运行,用于参数检查...它吧IFS变量中每一个字符当作是定界符,然后把其他扩展结果按这些定界符分割开 如果IFS没有设置,或者它正好等于 一个空格接一个跳格接一个换行符, 默认情况下,...如果设置了与默认不一样IFS,那么首尾空格,跳格都被忽略。 只要在IFS中包含有空白字符(空格,跳格), IFS中任何非IFS字符与IFS空白字符共同定界一个域。...IFS 空白字符序列也被当成delimiter, 如果IFS是null,则不会进行单词分割 7.8 路径名扩展 对命令行所有字符进行扫描,检查* ?...# 整行替换 sed '11c abc' t.log 把11行替换为abc # 删除匹配行及后两行 sed '/xxxx/,+2d' file

1.4K40

《Linux命令行与shell脚本编程大全》第十三章 更多结构化命令

本章讨论bash shell循环命令for、whileuntil 13.1 for命令 重复执行一系列命令在编程中很常见。 bash shell提供了for命令,允许你创建一个遍历一系列循环。...可以用命令替换来执行任何能产生输出命令,然后在for命令中使用该命令输出。 例子: 新建一个文件states,内容如下: ? 再建一个test2 #!...只识别换行符,就需要这么做:IFS=$’\n’。将这个语句假如脚本中,告诉bash shell在数据中忽略空格制表符。 #!...可以退出任意类型循环,包括whileuntil。 下面几种情况可以使用break命令。 1.跳出单个循环 执行break时,它会尝试跳出当前正在执行循环。   1 #!...用脚本创建用户 1.先建立一个文本,里面放用户idname。用逗号分隔 ? 2. 再去读取上述文件中信息 while IFS=',' read -r userid name 这个还是蛮有技巧

1.7K60

SHELL(bash)脚本编程八:技巧

至此,我们介绍了linux系统中常用命令使用方法,简述了bash程序使用方法工作流程。在使用bash编写脚本程序时,熟练掌握这些工具用法,往往能够达到事半功倍效果。...bash使用一个称为进程替换功能来弥补这些不足,进程替换实际上是命令替换管道组合,命令替换类似,bash运行一个命令,但令其运行于后台而不再等待其完成。...#重置IFS IFS=$'\n' #交集 grep -xf <(echo "${list_1[*]}") <<<"${list_2[*]}" #并集 sort -u <<EOF ${ip[*]} ${...ip_[*]} EOF #差集之一 grep -vxf <(echo "${list_1[*]}") <<<"${list_2[*]}" #还原IFS IFS=$' \t\n' bash一些特性常用命令结合使用...但本例中,需要重点理解是:IFS在数组扩展中特性,命令grepsort运用,以及进程替换使用

59820

详解流编辑器 sed 编程语言 awk

一、流编辑器 sed sed 是一个精简、非交互式流式编辑器,它在命令行中输入编辑命令指定文件名,然后在屏幕上查看输出。...sed  '3q' test.in p 打印匹配行 s 替换命令 = 显示匹配行行号 l 显示指定行中所有字符 d 删除匹配行 r 读文件 a\ 在指定行后面追加文本 w 写文件 i\ 在指定行前面追加文本...n 读取指定行下面一行 c\ 用新文本替换指定行 q 退出 sed 二、编程语言awk awk 是一种用于处理数据生成报告编程语言 awk 可以在命令行中进行一些简单操作,也可以被写成脚本来处理较大应用问题...与 sed一样,awk不会修改输入文件内容。 可以使用重定向将awk输出保存到文件中。...(一)awk简单用法 用法示 选项 -F 指定输入记录字段分隔符,默认使用环境变量IFS -f 从指定文件读取awk_script -v 为awk设定变量 The IFS is a special

1.2K00

sed用法详解

-f:使用sed脚本 -e:可以指定多个处理动作 -r:启用扩展正则表达式,当与其他选项使用时应作为首个选项 -{}:可组合多个命令,以分号分割 定址符:用来指定处理起止行,省略定址符时默认逐行处理全部文本.../' a.txt 将文件中每行第一个第二个字符互换 sed -r 's/^(.)(.)(.*)/\2\1\3/' a.txt 将文件中每行第一个第二个单词互换 sed -r 's/([a-Z]+...' m.txt 处理多行文本:修改后文本有多行时,以换行符\n分割,或者使用\强制换行 sed -n '2cXX\nYY' m.txt sed -n '2cXX\nYY YY' m.txt 利用sed...7数字 脚本示例:提取用户名密码字段存储 #!...,统计UID大于500用户个数 awk -F: 'BEGINelse}END' /etc/passwd 坏结构:whilewhile(条件) do while循环dowhile(条件) for

4.2K31

SHELL(bash)脚本编程三:重定向

#其中$(扩展符:变量扩展,数学扩展,命令替换)`(命令替换)保持它们特殊意义; #双引号中反斜线\只有在其后跟随是如下字符时才保持其特殊意义:$ ` " \ !...如果word没有被引用,here-document中词可以经历变量扩展、命令替换和数学扩展(双引号情况类似)。...如果word为-,则表示关闭文件描述符n。 [n]>&word这里有一个特殊情况:如果n省略且word结果不是数字,则表示重定向标准错误标准输出(如前所述)。..."break") sed '$abreak' /etc/passwd >&${ASYNC[1]} #获得输出 while read -u ${ASYNC[0]} user_name do echo...当然,这里for循环中执行复合命令可以替换为任意需要并发执行任务。

1.6K30

Shell笔记5:sed用法详解

-f:使用sed脚本 -e:可以指定多个处理动作 -r:启用扩展正则表达式,当与其他选项使用时应作为首个选项 -{}:可组合多个命令,以分号分割 定址符:用来指定处理起止行,省略定址符时默认逐行处理全部文本...#an开头注释去掉 删除每行第二个最后一个字符 sed -i 's/.//2;s/.$//' a.txt 删除每行第二个最后一个单词 sed -r 's/[a-Z]+//2;s/[a-Z]+(...[^a-Z]*)$/\1/' a.txt 将文件中每行第一个第二个字符互换 sed -r 's/^(.)(.)(.*)/\2\1\3/' a.txt 将文件中每行第一个第二个单词互换 sed -...,统计UID大于500用户个数 awk -F: 'BEGIN{i=0;j=0}{if($3<=500){i++}else{j++}}END{print i,j}' /etc/passwd 坏结构:while...while(条件){编辑指令} do while循环do{编辑指令}while(条件) for循环: for(初值;条件;步长){编辑指令} cat sshd.txt |awk '{for(i=1

1.2K10

生信人自我修养:Linux 命令速查手册(全文引用)

:空格,制表符 sed 's/AA/BB/' file # 将文件中AA替换成BB,只替换一行中第一次出现AA,替换结果输出到屏幕 sed 's/AA/BB/g' file # 将文件中所有...AA都替换成BB,替换结果输出到屏幕 sed -i 's/AA/BB/g' file # 将文件中所有AA都替换成BB,直接更改文件内容 sed '/CC/s/AA/BB/g' file# 只替换那些含有...# 提取Fastq文件序列 sed 'y/ABC/XYZ/' file # 将ABC逐字替换成XYZ sed '1i\hello' file # 在第1行前面插入一行,内容为hello,通常用来为文件增加标题...,也可以是正则表达式 常用参数 -F value 设置域分隔符,相当于给 FS 内置变量赋值 -v var=value 将变量 value 赋给程序变量 var,-v 可以多次使用 记录与字段 记录是一次读入内容...;分隔列,打印第1列,第2列最后一列,并且打印时以制表符作为列分隔符 number=10;awk -v n=$number '{print n}' file # number被传给了程序变量n

3.9K40

生信人自我修养:Linux 命令速查手册

:空格,制表符 sed 's/AA/BB/' file # 将文件中AA替换成BB,只替换一行中第一次出现AA,替换结果输出到屏幕 sed 's/AA/BB/g' file # 将文件中所有...AA都替换成BB,替换结果输出到屏幕 sed -i 's/AA/BB/g' file # 将文件中所有AA都替换成BB,直接更改文件内容 sed '/CC/s/AA/BB/g' file# 只替换那些含有...,也可以是正则表达式 常用参数 -F value 设置域分隔符,相当于给 FS 内置变量赋值 -v var=value 将变量 value 赋给程序变量 var,-v 可以多次使用 记录与字段 记录是一次读入内容...;分隔列,打印第1列,第2列最后一列,并且打印时以制表符作为列分隔符 number=10;awk -v n=$number '{print n}' file # number被传给了程序变量n...seq 10 # 产生1到10整数 md5sum # 生成,或验证文件MD5

7.3K21

大数据学习之Linux基础

当一个内核对象被创建时候,对应文件目录也在内核对象子系统中 指令集合: /bin: 存放着最常用程序指令 /sbin: 只有系统管理员能使用程序指令。.../usr/sbin: 超级用户使用比较高级管理程序系统守护程序。 /usr/src: 内核源代码默认放置目录。...学习命令技巧:通过 man 具体命令 查询该命令如何使用 eg: man wc ? 通过管道去除文件名信息 ? 行编辑器 sed 命令 # 查看用法 man sed ?...如果不是,在 while 命令开始执行之前 将 进 行变量替换,这意味着循环体所做变量变更将不考虑在这个表达式中。这将很 可能导致无限循环。...如果 test 被包围在花括号中,变量替换将延迟,直到表达式求 (在每次循环重复之前),所以变量变更将是可见

1.3K40
领券