【Linux】在文件的指定位置插入数据
今天遇到一个似乎很棘手的问题,要在文件的中间,插入几条配置
这里就以my.cnf这个文件为例
1 [mysqld]
2 datadir=/var/lib/mysql
3 socket=/var/lib/mysql/mysql.sock
4 # Disabling symbolic-links is recommended to prevent assorted security risks
5 symbolic-links=0
6 # Settings user and group are ignored when systemd is used.
7 # If you need to run mysqld under a different user or group,
8 # customize your systemd unit file for mariadb according to the
9 # instructions in http://fedoraproject.org/wiki/Systemd
10
11 [mysqld_safe]
12 log-error=/var/log/mariadb/mariadb.log
13 pid-file=/var/run/mariadb/mariadb.pid
14
15 #
16 # include all files from the config directory
17 #
18 !includedir /etc/my.cnf.d
想要在第十行插入
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
于是想到了sed命令,通过-i选项可以修改文件本身
命令如下:
sed -i "10i init_connect=\'SET collation_connection = utf8_unicode_ci\'" /etc/my.cnf
sed -i "11i init_connect=\'SET NAMES utf8\'" /etc/my.cnf
sed -i "12i character-set-server=utf8" /etc/my.cnf
sed -i "13i collation-server=utf8_unicode_ci" /etc/my.cnf
sed -i "14i skip-character-set-client-handshake" /etc/my.cnf
通过sed -i "行数+i+空格+想要插入的语句" 想要插入的文件
即可插入
本来想用cat <<EOF
EOF
但发现这个好像只能插入到文件的最后,无法在中间插入
如果插入的数据比较多的话,就很麻烦了,过阵子有时间再做下批量插入数据比较多的
-----------华丽丽的分割线-----------
如果想在文中插入数据的话,可以使用这个方法
想要插入的文件,内容如下:
# cat -n test.txt
1 id=1,name=zhang1
2 id=2,name=zhang2
3 id=3,name=zhang3
4 id=4,name=zhang4
5 id=5,name=zhang5
6 id=6,name=zhang6
7 id=7,name=zhang7
8 id=8,name=zhang8
9 id=9,name=zhang9
10 id=10,name=zhang10
11 id=11,name=zhang11
12 id=12,name=zhang12
13 id=13,name=zhang13
14 id=14,name=zhang14
15 id=15,name=zhang15
16 id=16,name=zhang16
17 id=17,name=zhang17
18 id=18,name=zhang18
19 id=19,name=zhang19
20 id=20,name=zhang20
21
可以使用命令
sed -i "10i test=1\ntest=2\ntest=3\ntest=4" test.txt
插入后的文件内容为
# cat -n test.txt
1 id=1,name=zhang1
2 id=2,name=zhang2
3 id=3,name=zhang3
4 id=4,name=zhang4
5 id=5,name=zhang5
6 id=6,name=zhang6
7 id=7,name=zhang7
8 id=8,name=zhang8
9 id=9,name=zhang9
10 test=1
11 test=2
12 test=3
13 test=4
14 id=10,name=zhang10
15 id=11,name=zhang11
16 id=12,name=zhang12
17 id=13,name=zhang13
18 id=14,name=zhang14
19 id=15,name=zhang15
20 id=16,name=zhang16
21 id=17,name=zhang17
22 id=18,name=zhang18
23 id=19,name=zhang19
24 id=20,name=zhang20
25
如果想要插入的内容比较繁琐的话,记得使用正确使用正则来处理文字
【Linux】在文件的指定位置插入数据的更多相关文章
- 【转载】C#中使用List集合的Insert方法在指定位置插入数据
在C#的List集合等数据类型变量中,我们可以使用List集合的Insert方法在指定的索引位置插入一个新数据,例如指定在List集合的第一个位置写入一个新数据或者在List集合的中间某个位置插入个新 ...
- php 数组指定位置插入数据单元
PHP array_splice() 函数 array_splice(array,offset,length,array) 参数 描述 array 必需.规定数组. offset 必需.数值.如果 ...
- Java分享笔记:RandomAccessFile流 & 在文件指定位置插入内容
RandomAccessFile流:随机存取文件流,该类定义了一个记录指针,通过移动指针可以访问文件的任意位置,且对文件既可以读也可以写.使用该类的write方法对文件写入时,实际上是一种覆盖效果,即 ...
- 【转载】C#使用InsertRange方法往ArrayList集合指定位置插入另一个集合
在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,ArrayList集合可存储多种数据类型的对象.在实际的开发过程中,我们可以使用InsertRange方法在ArrayList集合指 ...
- 利用RandomAccessFile类在指定文件指定位置插入内容
package File; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...
- Dream------Java--ant zip 对压缩文件进行指定位置的修改
ant zip 对压缩文件进行指定位置的修改 实现功能: 对2中文件进行修改: 需求: 在XX文件中,从二进制流的200字节位置开始,往后的30位字节数量.插入一个值 由于涉及到公司内部,不方便写太多 ...
- Java 替换word文档文字,指定位置插入图片
先说下 需要的依赖包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ex ...
- 在Word指定位置插入富文本域值(html文本)
遇到此问题,首先想到的就是各种百度.结果度娘了一会并没有发现有用的有效的解决方法,哎,看来还得靠自己啊. 首先整理了下手头上的资源,一是HtmlAgilityPack,专门解析Html文本用的:二是我 ...
- C++ std::vector指定位置插入
使用vector,必须加上:#include <vector> 1.初始化vector,一般有这几种方式: std::vector<std::wstring> v1; //创建 ...
随机推荐
- Python Windows开发环境搭建
一.下载python安装包 python官网地址:https://www.python.org/,下载windows平台包并安装 二.在Windows设置环境变量 计算机右键,选择属性,在高级系统设置 ...
- 前端面试题CSS-div宽度设置为100%,设置属性margin-left和margin-right时出现的问题
前端面试题CSS-div宽度设置为100%,设置属性margin-left和margin-right时出现的问题 div格式如下 <div class="a"> < ...
- python绘折线图
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt #X轴,Y轴数据 y = [0.3,0.4,2,5 ...
- Clickhouse 在大数据分析平台 - 留存分析上的应用
导语 | 本文实践了对于千万级别的用户,操作总数达万级别,每日几十亿操作流水的留存分析工具秒级别查询的数据构建方案.同时,除了留存分析,对于用户群分析,事件分析等也可以尝试用此方案来解决. 文章作者: ...
- Rest vs Soap 比较
一.前言 昨天为止,政府的一个公共部门的项目顺利结束,就系统间消息传输这个点,知识点总结一下.本文主要参考octoperf的文章,链接见文末参考资料. 系统中用到的是SOAP协议进行传输数据,有人会立 ...
- 云原生网络代理(MOSN)的进化之路
本文系云原生应用最佳实践杭州站活动演讲稿整理.杭州站活动邀请了 Apache APISIX 项目 VP 温铭.又拍云平台开发部高级工程师莫红波.蚂蚁金服技术专家王发康.有赞中间件开发工程师张超,分享云 ...
- web服务器专题:tomcat(三)tomcat-user.xml 配置文件
回顾:web服务器专题:tomcat(二)模块组件与server.xml 配置文件 Tomcat管理模块 安装Tomcat后,访问127.0.0.1/8080可以看到这个首页,上图中的三个按钮即为To ...
- 《Spring Boot 实战纪实》之关键点文档
目录 前言 (思维篇)人人都是产品经理 1.需求文档 1.1 需求管理 1.2 如何攥写需求文档 1.3 需求关键点文档 2 原型设计 2.1 缺失的逻辑 2.2 让想法跃然纸上 3 开发设计文档 3 ...
- 在库中使用schematics——ng add与ng update
起步 创建一个angular库 ng new demo --create-application=false ng g library my-lib 可见如下目录结构 ├── node_modules ...
- C#中的深度学习(一):使用OpenCV识别硬币
在本系列文章中,我们将使用深度神经网络(DNN)来执行硬币识别.具体来说,我们将训练一个DNN识别图像中的硬币. 在本文中,我们将描述一个OpenCV应用程序,它将检测图像中的硬币.硬币检测是硬币完整 ...