-
2021-05-09 07:10:28
今天测试人员一不小心把导航的地址改错了,大约6000多个导航文件,要通过后台配置的话也很麻烦,可以通过linux命令实现对批量文件进行内容替换,但是技术经理不在,我对linux命令不熟,没办法只好硬着头皮来。经在网上一番辛苦搜索,找到以下几个命令,并尝试执行……最终终于实现效果,哎,“书到用时方恨少”,特此针对今天的情况总结了一下Linux批量替换文件内容的命令,
第一种:
格式:sed -i "s/oldstr/newstr/g" filesname
说明:oldstr 需要替换的旧字符串
newstr 替换后的新字符串
filesname 批量文件名称,支持正则,如:ST_*.json
案例:
如果我想把ST_*.json下面的文件里的“today” 替换为“tomorrow”,那就是:
sed -i "s/today/tomorrow/g" ST_*.json
但是这种命令有一个缺陷,就是替换的文件数量有限制,不过可以针对文件名称规则再细分几种类型,分几次执行就可以了。于是另寻出路,找到了下面一种:
第二种:
格式:sed -i "s/oldstr/newstr/g" `grep oldstr -rl yourdir`
说明:oldstr 需要替换的旧字符串
newstr 替换后的新字符串
yourdir 文件路径名称
注意:在 `grep oldstr -rl /path`中 ` 为1前边的翻引号`,而不是enter 前的 '
但是执行出错,说是找不到路径,但是路径也正确,不明所以,还请大牛指教。然后我看到了一段说明说这种做法”对多个文件的处理可能不支持,需要用 xargs, 搞定。“也就是下面的方法
第三种:
格式:grepoldstr -rl /path | xargssed -i "s/oldstr/newstr/g" 说明:oldstr 需要替换的旧字符串
newstr 替换后的新字符串
path 文件路径名称
案例:
如果我想把/app/web/sitemap下面的文件里的“today” 替换为“tommorow”,那就是:
grep today -rl /app/web/sitemap grep |xargs sed -i "s/today/tommorow/g"
执行完毕,效果就出来了!这个太好用了。
我总结的可能不全,但是这两个用起来很顺手,如有其它顺手的命令,还请大家补充!
更多相关内容 -
linux批量处理图片
2018-10-20 16:41:56linux 自带的ImageMagick能够很方便地对图片进行批量处理,比如,批量图片格式转换,大小转换等等。在这里记录一下如何将成千上万的xxx.TIF文件(标签图像文件格式)批量转换成对应的xxx.png格式。因为自己用到了...有时候我们需要对很多的图片或文件进行处理,如数据集,如果一个一个图片处理就会非常麻烦,这时候我们可以采用批量操作。linux 自带的ImageMagick能够很方便地对图片进行批量处理,比如,批量图片格式转换,大小转换等等。在这里记录一下如何将成千上万的xxx.TIF文件(标签图像文件格式)批量转换成对应的xxx.png格式。因为自己用到了双三次下采样(上采用同),所以也记录了。
- 先在终端进入到xxx.TIF所在文件夹,然后输入下列语句先在终端进入到xxx.TIF所在文件夹,然后输入下列语句
这个语句表示把xxx.TIF文件(*.TIF)转换成png格式(-format png ),然后把png文件缩小5倍(-size %20 **.png),最后保存到相应的文件夹(-path /home/img/Desktop/RAISE_HR),其他的语句可以对应添加和移除。
2.在这里介绍一下怎么把文件夹里成千上万的文件按文件名的尾数进行查找,并进行删除
这里 find /home/img/Desktop/RAISE_HR |grep 0.png$表示找出相应文件夹中文件名以0结尾的png文件,| xargs rm -r对以上找出的文件执行删除。其他的语句也可以自行添加或删除。
3.再放一段python代码,将文件夹里的所有文件批量进行双三次(bicubic)下采样操作
目前就记录这些啦!最后,要说的是Linux的命令行真的是非常方便啊哈哈哈
- 先在终端进入到xxx.TIF所在文件夹,然后输入下列语句先在终端进入到xxx.TIF所在文件夹,然后输入下列语句
-
使用Linux shell脚本实现FTP定时执行批量下载指定文件
2020-09-15 10:24:23使用FTP定时批量下载指定文件的shell脚本,具体实例介绍如下所示,需要的朋友参考下吧 -
Linux 批量改名之 rename 命令
2021-05-16 09:11:21Linux批量修改(删除)文件名某些字符(rename命令) 假设在路径C:/下存在多个类似以下的文件名 file_nall_abc1.txt file_nall_abc2.txt file_nall_abc3.txt file_nall_abc4.txt fi ... linux rename命令批量修改...刚学习到 rename 命令功能很强大,比win 下的 ren 厉害啊
具体看 man rename
语法: rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr [ files ]
举例:
rename 's/$/\.mp3/' *
意思是,把所有文件增加 .mp3 的扩展名
最后的 * 是目标要操作的一批匹配的文件,中间字符串是一个 perl 正则表达式, s/ 表示替换操作, 将空 的替换(/).mp3 其中 . 是保留字符用 \ 转义 , 最后一个 / 表示结束
linux 批量更改文件名 rename 命令
rename 的典型应用: # rename $1 $2 $3# $1: 要被取代的關鍵字# $2: 新的關鍵字# $3: 檔名符合這個規則的才取代 # 把 IMG001.jpg, IMG002.jp ...
Linux 批量杀进程的命令
使用awk批量杀进程的命令: ps -ef | grep firefox | grep -v grep | awk '{print "kill -9 "$2}'|sh #列出了当前 ...
linux批量改名
rename 's/abc/xyz/' * 把包含abc的文件名,替换为xyz
(转)rename命令详解
rename命令详解: 原文:http://www.cnblogs.com/amosli/p/3491649.html 对文件重命名是常用的操作之一,一般对单个文件的重命名用mv命令,如: amosl ...
Linux批量修改(删除)文件名某些字符(rename命令)
假设在路径C:/下存在多个类似以下的文件名 file_nall_abc1.txt file_nall_abc2.txt file_nall_abc3.txt file_nall_abc4.txt fi ...
linux rename命令批量修改文件名
修改文件名可以用mv命令来实现 mv filename1 filename2 1 但如果批量修改还是使用rename命令更为方便 现在我们有a b c d 四个文件 增加后缀 rename 's/$/ ...
linux下rename命令使用(可以实现文件批量重名)
rename命令使用 把所有文件中的@符号去掉 wang@2a.pngzhang@2a.pngzhou@2a.pnghaha@2a.pngmama@2a.png CentOS:rename \@2a. ...
Linux下的rename命令
Dos/Windows下,对文件改名用rename.而书上说,Linux下对文件或目录改名该用mv.我一直也是这样做的,却忽略了Linux下也有个叫rename的命令.都是rename,但功能上就有点 ...
Linux rename命令
转载:http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件 ...
随机推荐
Caffe proto閱讀
--------------------------------------------------------------------------------- 1.Data Layer sourc ...
zoj The 12th Zhejiang Provincial Collegiate Programming Contest Convert QWERTY to Dvorak
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5502 The 12th Zhejiang Provincial ...
PHP图形图像处理之初识GD库
d=====( ̄▽ ̄*)b 引语 php不仅仅局限于html的输出,还可以创建和操作各种各样的图像文件,如GIF.PNG.JPEG.WBMP.XBM等. php还可以将图像流直接显示在浏览器中. 要处 ...
AJAX异步同步
为了更好的用户体验,AJAX的异步同步技术给了我们一个很好的用户体验下面是我做的一个例子. 1.客户端处理 UserId.HTML /p>
hdoj 3836 Equivalent Sets【scc&;&;缩点】【求最少加多少条边使图强连通】
Equivalent Sets Time Limit: 12000/4000 MS (Java/Others) Memory Limit: 104857/104857 K (Java/Other ...
DECIMAL Data Type
In MySQL, DECIMAL(M,D) and NUMERIC(M,D) are the same, and both have a precision of exactly M digits. ...
搞Solr这一年(本人QQ 282335345 群412268049 欢迎大家一起学习Solr 非诚勿扰)
搞Solr这一年 去年6月份毕业到现在已经快一年半了,很庆幸从事了搜索引擎这份工作,虽然谈不上有多深入,但至少已经入门了.在这一年半里,搞了3个月的hbase和mapreduce,搞了一个月的nutc ...
我为什么要再给lua写一个json模块
最近要给自己编写的服务器加上json解析模块.根据我当前的项目,可以预测服务器中使用json的地方: 通信.由于与客户端通信使用google protocolbuffer,仅在与SDK通信中使用jso ...
【Elasticsearch全文搜索引擎实战】之Kibana搭建
1. Kibana介绍 Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索.查看交互存储在Elasticsearch索引中的数据.使用Kibana,可以通过各种图表进行高 ...
Java中的基本数据类型及其封装类
Java中的数据类型有两种,基本数据类型和引用数据类型,引用数据类型的创建是 需要去new一个对象,该对象的内存分配在堆区,同时栈区会保存一个指向该对象的引用, 但是对于一些简单数据的创建,用new的 ...
-
8.1.1 Flink快速应用【批量处理数据、实时流处理数据】
2021-12-11 10:08:27Flink快速应用 文章目录Flink快速应用第 1 节 单词...2、处理数据源 a、将读到的数据源文件中的每一行根据空格切分 b、将切分好的每个单词拼接1 c、根据单词聚合(将相同的单词放在一起) d、累加相同的单词(单词后面Flink快速应用
文章目录
通过一个单词统计的案例,快速上手应用Flink,进行流处理(Streaming)和批处理(Batch)
第 1 节 单词统计案例(批数据)
1.1 需求
统计一个文件中各个单词出现的次数,把统计结果输出到文件
步骤:
1、读取数据源
2、处理数据源
a、将读到的数据源文件中的每一行根据空格切分
b、将切分好的每个单词拼接1 c、根据单词聚合(将相同的单词放在一起)
d、累加相同的单词(单词后面的1进行累加)
3、保存处理结果1.2 代码实现
引入依赖pom.xml
<dependencies> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-java --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.11.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-java --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.12</artifactId> <version>1.11.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-clients --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.12</artifactId> <version>1.11.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-scala --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.12</artifactId> <version>1.11.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-scala --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-scala_2.12</artifactId> <version>1.11.1</version> <!--<scope>provided</scope>--> </dependency> <dependencies>
Java程序
package com.lagou; import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.ExecutionEnvironment; import org.apache.flink.api.java.operators.AggregateOperator; import org.apache.flink.api.java.operators.FlatMapOperator; import org.apache.flink.api.java.operators.UnsortedGrouping; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.util.Collector; /** * 1、读取数据源 * 2、处理数据源 * a、将读到的数据源文件中的每一行根据空格切分 * b、将切分好的每个单词拼接1 * c、根据单词聚合(将相同的单词放在一起) * d、累加相同的单词(单词后面的1进行累加) * 3、保存处理结果 */ public class WordCountJavaBatch { public static void main(String[] args) throws Exception { String inputPath="D:\\data\\input\\hello.txt"; String outputPath="D:\\data\\output"; //获取flink的运行环境 ExecutionEnvironment executionEnvironment = ExecutionEnvironment.getExecutionEnvironment(); DataSet<String> text = executionEnvironment.readTextFile(inputPath); FlatMapOperator<String, Tuple2<String, Integer>> wordOndOnes = text.flatMap(new SplitClz()); //(hello 1) (you 1) (hi 1) (him 1) UnsortedGrouping<Tuple2<String, Integer>> groupedWordAndOne = wordOndOnes.groupBy(0); //(hello 1) (hello 1) AggregateOperator<Tuple2<String, Integer>> out = groupedWordAndOne.sum(1);//1代表第1个元素 out.writeAsCsv(outputPath, "\n", " ").setParallelism(1);//设置并行度 executionEnvironment.execute();//人为调用执行方法 } static class SplitClz implements FlatMapFunction<String,Tuple2<String,Integer>>{ @Override public void flatMap(String s, Collector<Tuple2<String, Integer>> collector) throws Exception { String[] s1 = s.split(" "); for (String word:s1) { collector.collect(new Tuple2<String,Integer>(word,1));//发送到下游 } } } }
原文件
输出文件
scala程序
import org.apache.flink.api.scala._ object WordCountScalaBatch { def main(args: Array[String]): Unit = { val inputPath = "D:\\\\data\\\\input\\\\hello.txt" val outputPath = "D:\\data\\output" val environment: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment val text: DataSet[String] = environment.readTextFile(inputPath) val out: AggregateDataSet[(String, Int)] = text.flatMap(_.split(" ")).map((_, 1)).groupBy(0).sum(1) out.writeAsCsv(outputPath,"\n", " ").setParallelism(1) environment.execute("scala batch process") } }
第 2 节 单词统计案例(流数据)
2.1 需求
Socket模拟实时发送单词,使用Flink实时接收数据,对指定时间窗口内(如5s)的数据进行聚合统计,每隔1s汇总计算一次,并且把时间窗口内计算结果打印出来。
2.2 代码实现
scala程序
import org.apache.flink.streaming.api.scala._ object WordCountScalaStream { def main(args: Array[String]): Unit = { //处理流式数据 val environment: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment //拿到运行环境 val streamData: DataStream[String] = environment.socketTextStream("hadoop102", 7777) val out = streamData.flatMap(_.split(" ")).map((_, 1)).keyBy(0).sum(1) out.print() environment.execute() } }
java程序
package com.lagou; import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.streaming.api.datastream.DataStreamSource; import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.util.Collector; public class WordCountJavaStream { public static void main(String[] args) throws Exception { StreamExecutionEnvironment executionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment(); DataStreamSource<String> dataStream = executionEnvironment.socketTextStream("linux121", 7777); SingleOutputStreamOperator<Tuple2<String, Integer>> sum = dataStream.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() { public void flatMap(String s, Collector<Tuple2<String, Integer>> collector) throws Exception { for (String word : s.split(" ")) { collector.collect(new Tuple2<String, Integer>(word, 1)); } } }).keyBy(0).sum(1); sum.print(); executionEnvironment.execute(); } }
运行之前需要勾选
#控制台输入,7777表示端口 nc -lp 7777 #然后输入单词,查看统计
-
python调用MRT批处理MODIS数据.rar
2021-12-17 00:21:52python调用MRT软件,批量处理MODIS数据,适合了解MRT软件的用户;可联系协助调试,代码注释的基本比较清楚。 -
Linux批量修改txt文档内容或加前缀
2022-01-09 20:35:32Linux批量修改txt文档内容或加前缀 记录一个科研中遇到的问题吧,就是要批量修改 txt 文档中的内容。因为数据集的路径可能设置的不太相同。 问题是: 在一个文件加下有很多的 txt 文件。 这些文件中的内容是 ... -
linux 批量修改文件后缀名
2022-03-22 08:02:48今天遇到的一个问题,要将一批jpg文件后缀名更改为png,凭感觉能用awk指令进行修改,就进行了尝试。 想到的思路是:先列举出文件名称,再用awk...表示将管道前的内容的第9列用分隔符“."进行分割,得到数据 a,再将数据 -
【Linux】【Shell】如何循环进入文件夹批量处理数据?批量修改文件的脚本
2019-08-30 11:39:31# 打开一个文件夹,发现还有10个文件夹,10个文件夹每个里面有10个文件夹,然后下面是数据文件 # 循环进入文件夹,然后对每个文件夹进行替换操作,仅适用于相同的天线批量替换 # 这个脚本需要放外面,否在会出错,... -
Linux下批量ping某个网段ip的脚本
2021-05-11 06:20:12RedisCluster linux下批量删除 key Redis Cluster linux下批量删除键 说明 使用时不支持传入参数 , 如 redis_batch_del.sh , 因为在linux下 会自动将 * 解析为当前目录下所有文件名, 目前还 ... Linux 下获取LAN中... -
Linux Shell 批量运行语句
2021-09-02 15:41:03Shell本质上就是将多个命令放于*.sh文件中批量运行。 如:新建一个test.sh文件,输入如下几条命令并保存(第一条命令利用同目录下makefile文件编译C++程序,第二条命令删除编译产生的中间文件*.o,第三至五条命令... -
Python文件夹与文件的操作-- 批量处理数据
2018-03-03 08:50:51链接在下面批量的处理文件,对于文件夹的操作还是很必要的,Python中通过os模块使得与Linux系统的命令联系起来。即有关文件夹与文件的查找,删除等功能在 os 模块中实现。使用时需先导入这个模块,导入的方法是:&... -
linux下批量处理数据
2011-03-28 21:05:00每个文件的这些关键字是不是这出现在某一行? for data in $(ls *.dat) do tocell=$... done 另外也可以用sed来提取你要的数据 反正完成一个 -
linux下shell脚本实现文件的批量处理
2019-04-25 14:47:48linux下shell脚本实现文件的批量处理说明:1、shell文件创建2、文件编辑注意:3、执行shell文件4、停止正在执行shell文件 说明: 在使用linux虚拟机处理数据的过程中,由于需要处理的文件量较大,并且有大量重复的... -
linux 批量在指定字符串下一行插入数据
2019-06-14 10:48:03功能 ...待处理目录:frameworks 我们想要在该目录所有包含该字符串的文件中后面添加一些内容,内容字符串为“asdfadf”,做法如下: grep “vendor_available” -r.|cut -d ":" -f1 |xargs -n1 -... -
mysql学习-linux环境-csv文件批量入mysql库
2021-12-27 15:23:08将多个目录下的csv文件批量导入到mysql数据库中 -
linux使用gzip批量压缩某个文件夹下的文件
2021-12-01 15:47:44gzip怎样将某个文件夹下的文件批量压缩到目标文件夹下,同时保留原始文件 -
Linux上批量查找文件里面带的关键字(grep 关键字的用法)
2021-05-16 09:14:16grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C][-d][-e][-f][--help][范本样式][文件或目录...]grep -参数 文件名/文件目录参数 -a或--text 不要忽略二进制的数据。-A 除了显示符合范本样式的那一行数据之外,还显示该行... -
[linux] bash 脚本实现批量化作业与并行处理
2019-04-30 19:58:17在Linux下运行作业时, 经常会遇到以下情形: 有大量作业需要运行, 完成每个作业所需要的时间也不是很长. 如果我们以串行方式来运行这些作业, 可能要耗费较长的时间; 若采用并行方式运行则可以大大节约运行时间. 再者,... -
mysql批量插入数据
2021-07-23 09:48:14因此我们大多时候会采用批量插入来提升插入速度,争取在一次链接中尽可能多的写入数据(下面通过几个参数来说明一次到底插入多少数据量合适)。 使用语句拼接 insert into table (col1,col2,col3) values (’ 1’... -
C++向mysql批量插入数据
2022-04-14 21:56:41一、以下共统计了3种批量插入的方法: 1、普通方法:一条一条插入; 2、使用拼接语句一次性插入,拼接语句的语法如下: insert into table (col1,col2,col3) values (’a’,’b‘,’c‘), (’a1’,’b1... -
Python3,实用技巧之:批量处理数据、本地集成命令、查看服务器日志
2021-01-01 07:37:40python实用小技巧1 引言2 批量处理数据3 本地集成命令4 查看服务器日志 1 引言 2021年开年第一篇,我们来聊聊Python的实用小技巧。 学会这几个小技巧,提升的不仅仅是你的工作效率,还有… 2 批量处理数据 在执行... -
matlab批量处理excel(CSV)文件数据
2019-01-29 21:51:251-29,参加完2019年美国大学生数学建模竞赛,小伙伴都回家了,就我一个人在寝室,太无聊了,就把在比赛中遇到的excel批处理,写一下思路(ps:其实我在比赛中利用的是SQLServer数据库和matlab相结合的数据处理方法,... -
【Spark】(task1)PySpark基础数据处理
2022-03-15 13:58:56文章目录学习总结一、Spark介绍1.1 Scala和PySpark1.2 Spark原理1.3 一个具体栗子二、安装方式三、测试是否安装成功四、Spark程序的模块分类五、数据处理任务5.1 使用Python链接Spark环境5.2 创建dateframe数据5.3 ... -
ADNI数据预处理-dcm2nii批量处理
2020-05-28 01:46:51处理医学影像数据,dicom2nii是我们经常会遇到的问题。在利用公开数据集ADNI的数据时,我们可以直接下载nii格式的数据,但是MPRAGE和fMRI数据不在一个空间位置,甚至相差很远,在一个可见的情况下(MPRAGE),另一个... -
Python批量处理文件的方法总结(包括folder、txt、xml、excel)
2021-09-01 13:53:57Python对folder、txt、excel进行操作的方法总结一、使用Python批量创建folder二、使用python批量创建txt三、使用 Python批量修改文件名四、使用Python读取txt中的数据并创建excel五、拆分txt数据:一个txt分组成多个... -
测试学习-112-使用Jmeter进行批量数据的自动化接口测试
2020-12-10 15:24:50以上呢,就是针对于使用jmeter工具进行批量数据的自动化结构测试的一些教程。其中有一些前期准备工作,已经在上一篇文章中讲到。大家可以自己去浏览观看。上一节主要是讲的postman。 上一篇文章:... -
Linux下批量telnet测试脚本
2019-01-28 18:12:36今天有个需求,给了我几十个IP,然后每个IP提供了好几个端口,需要测试连通性。...#功能,批量telnet端口,输入参数需要测试的IP:PORT列表文件:telnet_list.txt(文件名可以自定义,但是只能跟脚... -
linux脚本用fdisk批量给主机硬盘分区
2021-06-09 18:18:57每个区的大小计算获取使用的命令参数获取方式值提取后如下值提出来以后删除刚才创建的分区脚本测试分区是否正常脚本内容如下执行结果脚本中功能...代码说明功能代码遍历执行代码脚本执行批量中某一台创建失败处理方法...