linux如何批量修改文件里内容啊。
发布网友
发布时间:2022-04-23 13:25
我来回答
共3个回答
热心网友
时间:2022-05-03 22:47
1.先将你上面的文本保存为文件 ts.txt
2.保存如下脚本为ts.sh并修改可执行权限。
#!/bin/bash
cat ts.txt |gawk '/IOPATH/ {if (gsub(/\(|\)/,"")) {
t1=$1;t2=$2;t3=$3;
split($4,value1,":");v1=value1[1];v2=value1[2];v3=value1[3];
split($5,value2,":");v11=value2[1];v22=value2[2];v33=value2[3];
print "\t("t1" " t2" " t3 " ("v1*10":"v2*10":"v3*10") ("v11*10":"v22*10":"v33*10"))"};
next} {print}'
3. # ./ts.sh >ts1.txt
4. # more ts1.txt 输出如下,按照你的要求每个数*10
(CELL
(CELLTYPE "OR2X1")
(INSTANCE U2604)
(DELAY
(ABSOLUTE
(IOPATH A Y (6.5:6.5:6.5) (4.57:4.57:4.57))
(IOPATH B Y (6.08:6.08:6.08) (6.82:6.82:6.82))
)
)
)
(CELL
(CELLTYPE "OAI21XL")
(INSTANCE U2603)
(DELAY
(ABSOLUTE
(IOPATH A0 Y (1.11:1.11:1.11) (0.49:0.49:0.49))
(IOPATH A1 Y (3.11:3.11:3.11) (-0.37:-0.37:-0.37))
(IOPATH B0 Y (1.86:1.88:1.88) (0.62:0.62:0.62))
)
)
)
5. # diff ts.txt ts1.txt 比较结果输出如下
6,7c6,7
< (IOPATH A Y (0.650:0.650:0.650) (0.457:0.457:0.457))
< (IOPATH B Y (0.608:0.608:0.608) (0.682:0.682:0.682))
---
> (IOPATH A Y (6.5:6.5:6.5) (4.57:4.57:4.57))
> (IOPATH B Y (6.08:6.08:6.08) (6.82:6.82:6.82))
16,18c16,18
< (IOPATH A0 Y (0.111:0.111:0.111) (0.049:0.049:0.049))
< (IOPATH A1 Y (0.311:0.311:0.311) (-0.037:-0.037:-0.037))
< (IOPATH B0 Y (0.186:0.188:0.188) (0.062:0.062:0.062))
---
> (IOPATH A0 Y (1.11:1.11:1.11) (0.49:0.49:0.49))
> (IOPATH A1 Y (3.11:3.11:3.11) (-0.37:-0.37:-0.37))
> (IOPATH B0 Y (1.86:1.88:1.88) (0.62:0.62:0.62))
从以上比较的结果可以看出每个符合要求的值都乘以了10.
希望能帮你解决
热心网友
时间:2022-05-04 00:05
通配符没用啦,还要*10 替换,还是写个脚本运行啦。。
热心网友
时间:2022-05-04 01:39
linux 的 强大 功能 就是 匹配、替换
可以用 脚本 完成 吧
建议 去 大论坛 看看,那里高手林立
如
UC unix-center
CU chinaunix追问我就是处理数据的时候想到,可以依靠脚本来完成,但是没搞过这些,一点思路没有
linux批量修改文件名linux批量修改
1、在Linux系统上打开终端;?2、使用rename命令;from表示需要替换或者处理的字符,比如文件的扩展名,文件名.to表示对from处理之后的结果。file表示目标文件。?3、使用rename将文件后缀名.log改为.jpg或其他即可。多个linux服务器批量更改nginx配置文件并且立即生效的办法?如果不会用salt或者ansible的话,最...
linux下perl,sed,shell批量替换文件内容
Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。用sed命令可以批量替换多个文件中的 字符串。sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`例如:我要把mahuinan替换 为huinanma,执行命令:sed -i "s/mahuinan/hui...
linux批量替换文件夹名,文件名,文件内容命令
1.批量改名采用命令rename rename 语法:rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]-v表示显示详细信息,-n表示不实际执行替换,只是看哪些文件会受影响。 -f 表示强制,不管是否有重名。perlexpr是perl语法的表达式, files则是匹配项。因此,该命令执行结果与perlexpr有关,不一定就是...
linux 文件名批量修改,全部加上某个数,怎么弄?
写个脚本 逐个修改即可 !/bin/bashfor file in $(ls *.jpg)do filename=${file%.jpg} count=$(echo $filename | wc -c ) if [ $count -gt 2 ]; then mv $file "2${filename}.jpg" else mv $file "20${filename}.jpg" fidone ...
linux 重命名大量文件
其实在文本模式中要重命名文件或目录的话也是很简单的,我们只需要使用mv命令就可以了,比如说我们要将一个名为abc的文件重命名为1234就可以这样来写:mv abc 1234,但是要注意的是,如果当前目录下也有个1234的文件的话,我们的这个文件是会将它覆盖的。二、Linux批量重命名文件会涉及到改变一个字母、...
...把1个复制成不同名字的多个。批量修改文件内容脚本,替换指定的字 ...
对于第一个问题,由于你没给出重命名的详细要求,我就任意举例重命名的方式。如:for i in `ls` #执行for循环,shell将反引号` `中的内容作为命令执行,意味:对于ls得到的所有 do #文件,以i去迭代。cp $i "./${i}0" #在文件名$i后面加个0,复制到./,./代表当前目录 done ...
Linux下快速批量修改文件夹下的图片名称的方法
代码如下:!/bin/bash for filename in `ls`do echo $filename cd $filename file1=${filename%%.*} file2=${filename##*.} mv *.jpg $file1$file2.jpg cd 。。done 上面就是Linux下快速批量修改图片名称的方法介绍了,通过该代码就可以完成图片名称的批量修改,如果你需要批量修改图片...
Linux文件操作(包括批量修改文件权限、删除指定日期之前的文件列表、删...
进行目录文件权限的修改 若需删除特定日期之前、之后或范围内的文件,请使用相应的命令。以2024年5月15日为例,若要删除5月14日修改的文件,可以使用-newermt选项来设定起始和结束日期。如有任何疑问,请随时留言或私信我,我会尽力为您解答。若内容对您有帮助,请点赞、分享或转发,让更多人受益。欢迎...
如何在linux下快速批量修改文件夹和文件权限
方法/步骤 Linux系统中,每个文件的权限默认是由创建它的使用者所指定的。而且权限不随文件环境的改变而变化。换言之,你从别的地方复制、下载、接受过来的文件权限与它原始的权限保持一致。例如图1中的文件是通过蓝牙装置接收的。当新的操作者的权限低于文件默认的权限时,文件是没有办法运行的。例如图...
关于linux批量修改文件夹内的文件名的问题!
cd /path/to/Afind . -type f -name *.wav -exec ffmpeg -i {} -acodec libamr_nb -ab 12.2k -ar 8000 -ac 1 {}.amr \;这个命令大概没有问题, 但是test.wav 会被修改为test.wav.amr