sed -i 'ni\x' test.file        表示向test.file文件里的第n行的前面添加x内容
sed -i 'na\x' test.file       表示向test.file文件里的第n行的后面添加x内容

sed -i '/m/i\x' test.file     表示向test.file文件里匹配m字符串的行的前面添加x内容
sed -i '/m/a\x' test.file    表示向test.file文件里匹配m字符串的行的后面添加x内容

-i     表示in front,前面
-a    表示after,后面

比如向a.txt文件的首行添加123456789
# sed -i '1i\123456789' a.txt

比如向a.txt文件的第3行添加hhhhh
# sed -i '3a\hhhhh' a.txt

比如向a.txt文件匹配abcd字符串的行的前面添加66666
# sed -i '/abcd/i\66666' a.txt

比如向a.txt文件匹配1234字符串的行的后面添加hahaha
# sed -i '/1234/a\hahaha' a.txt

在/etc/my.cnf文件中匹配[mysqld]行的下面添加"skip-grant-tables", 注意[mysqld]前面需要加一个转义符!
# sed -i '/\[mysqld]/a\skip-grant-tables' /usr/local/mysql/my.cnf

比如向/etc/puppet/puppet.conf文件中的第2行的前面添加" server=puppet01.test.cn"内容
然后再向第3行添加" runinterval = 600"内容
# /bin/sed -i '2i\ server=puppet01.test.cn' /etc/puppet/puppet.conf
# /bin/sed -i '3i\ runinterval = 600' /etc/puppet/puppet.conf

##################   远程批量关闭进程main的脚本   ##################

[root@kevn script]# cat 6_main_stop.sh
#!/bin/bash
for i in $(cat /opt/ip.list)
do
ssh -p22 root@$i 'ps -ef|grep main|grep -v grep|awk -F" " "{print $2}"|xargs kill -9 >/dev/null 2>&1'
done

##################  取文件中最后一个字符  ##################

取最后一个字符:awk '{print substr($0,length())}' filename
[root@localhost ~]# cat a
3G
32G
123G
2348G
123131G
123123123123123G
[root@localhost ~]# awk '{print substr($0,length())}' a
G
G
G
G
G
G
[root@localhost ~]# awk -F"G" '{print $1}' a
3
32
123
2348
123131
123123123123123

##################  将多行文本转换成一行并用逗号隔开  ##################

[root@kevin ~]# cat test
172.16.60.211
172.16.60.212
172.16.60.213
172.16.60.214
172.16.60.215
172.16.60.216
172.16.60.217
172.16.60.218
172.16.60.219
172.16.60.220
172.16.60.221 1)使用xargs方法,并用tr实现逗号隔开
[root@kevin ~]# cat test| xargs | tr ' ' ','
172.16.60.211,172.16.60.212,172.16.60.213,172.16.60.214,172.16.60.215,172.16.60.216,172.16.60.217,172.16.60.218,172.16.60.219,172.16.60.220,172.16.60.221 2)使用sed实现多个字符串的替换。sed可以替换多个字符串,可以弥补tr的不足,后面g表示匹配多个。
[root@kevin ~]# cat test |xargs|sed 's/ /,/g'
172.16.60.211,172.16.60.212,172.16.60.213,172.16.60.214,172.16.60.215,172.16.60.216,172.16.60.217,172.16.60.218,172.16.60.219,172.16.60.220,172.16.60.221

##################  将一行内容按照字段分为多列  ##################

[root@k8s-master01 ~]# cat a.txt
172.20.100.100,172.20.100.101,172.20.100.102,172.20.100.103,172.20.100.104,172.20.100.105,172.20.100.106 将逗号替换为换行
[root@k8s-master01 ~]# sed 's/,/\n/g' a.txt
172.20.100.100
172.20.100.101
172.20.100.102
172.20.100.103
172.20.100.104
172.20.100.105
172.20.100.106 [root@k8s-master01 ~]# sed -i 's/,/\n/g' a.txt
[root@k8s-master01 ~]# cat a.txt
172.20.100.100
172.20.100.101
172.20.100.102
172.20.100.103
172.20.100.104
172.20.100.105
172.20.100.106

##################  paste命令用法  ################## 
paste 命令用于合并文件的列,会把每个文件以列对列的方式,一列列地加以合并。

语法
paste [-s][-d <间隔字符>][--help][--version][文件...] 参数:
-d<间隔字符>或--delimiters=<间隔字符> : 用指定的间隔字符取代跳格字符。
-s或--serial: 串列进行而非平行处理。
--help: 在线帮助。
--version: 显示帮助信息。
[文件…]: 指定操作的文件路径 比如:
paste file testfile testfile1 #合并指定文件的内容
paste file testfile testfile1 -d ":" #合并指定文件的内容,并使用逗号隔开。-d后面的分隔符可以自行定义!
paste -s file # 合并指定文件的多行数据。使用-s参数可以将一个文件中的多行数据合并为一行进行显示。 示例如下:
[root@kevin ~]# cat aa.txt
11
22
33
44
55
[root@kevin ~]# cat bb.txt
aa
ab
ac
cc
cd 使用paste命令将文件进行合并
[root@kevin ~]# paste aa.txt bb.txt
11 aa
22 ab
33 ac
44 cc
55 cd 合并后使用":"隔开
[root@kevin ~]# paste -d":" aa.txt bb.txt
11:aa
22:ab
33:ac
44:cc
55:cd 合并后使用"-"隔开
[root@kevin ~]# paste -d"-" aa.txt bb.txt
11-aa
22-ab
33-ac
44-cc
55-cd paste -s 可以将一个文件中的多行内容合并为一行。例如:
[root@kevin ~]# cat file
111
222
333
444
555
[root@kevin ~]# cat file |paste -s
111 222 333 444 555
[root@kevin ~]# cat file |paste -s -d":"
111:222:333:444:555
[root@kevin ~]# cat file |paste -s -d ":"
111:222:333:444:555
[root@kevin ~]# cat file |paste -s -d "-"
111-222-333-444-555
[root@kevin ~]# cat file |paste -s -d "---"
111-222-333-444-555
[root@kevin ~]# cat file |paste -s -d ","
111,222,333,444,555 看下面一个小需求:
有一个log.txt文件,第二列是ip,现在需要将log.txt文件中的ip列取出来放在一行,并用逗号隔开。 第一种做法:awk + paste
[root@kevin ~]# cat log.txt
17:05 172.16.60.34 sadfjsafjsdf
17:14 172.16.60.35 asdfasudfasjfasjfklsafsaf
17:45 172.16.60.38 dsafkjdsajflsajfadf [root@kevin ~]# cat log.txt
17:05 172.16.60.34 sadfjsafjsdf
17:14 172.16.60.35 asdfasudfasjfasjfklsafsaf
17:45 172.16.60.38 dsafkjdsajflsajfadf [root@kevin ~]# cat log.txt |awk '{print $2}'
172.16.60.34
172.16.60.35
172.16.60.38 [root@kevin ~]# cat log.txt |awk '{print $2}'|paste -s
172.16.60.34 172.16.60.35 172.16.60.38 [root@kevin ~]# cat log.txt |awk '{print $2}'|paste -s -d","
172.16.60.34,172.16.60.35,172.16.60.38 另一种做法是:awk + xargs + sed
[root@kevin ~]# cat log.txt |awk '{print $2}'
172.16.60.34
172.16.60.35
172.16.60.38
[root@kevin ~]# cat log.txt |awk '{print $2}'|xargs
172.16.60.34 172.16.60.35 172.16.60.38
[root@kevin ~]# cat log.txt |awk '{print $2}'|xargs|sed 's/ /,/g'
172.16.60.34,172.16.60.35,172.16.60.38

linux下向一个文件中的某行插入数据的做法的更多相关文章

  1. 【转载】在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间

    在windows下,一个文件有:创建时间.修改时间.访问时间.而在Linux下,一个文件也有三种时间,分别是:访问时间.修改时间.状态改动时间. 两者有此不同,在Linux下没有创建时间的概念,也就是 ...

  2. linux下,一个运行中的程序,究竟占用了多少内存

    linux下,一个运行中的程序,究竟占用了多少内存 1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用 ...

  3. 查看Linux下*.a库文件中文件、函数、变量

    查看Linux下*.a库文件中文件.函数.变量等情况在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t xxx.a 2. ...

  4. linux 如何显示一个文件的某几行(中间几行)

    linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...

  5. 查看Linux下*.a库文件中文件、函数、变量等情况

    在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t *.a 2. 查看函数.变里:nm *.a

  6. 4.windows和Linux下创建oracleusername表空间,表,插入数据,用户管理表等操作

    进入超级管理员,运行下面命令 Window下创建数据库.表空间,用户,插入数据等操作 -- 01 创建表空间 -- 注意表空间的路径 依据实际安装环境进行调整 CREATE TABLESPACE ts ...

  7. [Android Pro] linux下查看一个文件的属性(ls,lsattr,file,stat)

    reference to : http://blog.chinaunix.net/uid-28458801-id-4615294.html 查看文件属性有多种方法,且这些方法中偏向不同,具体如下: 1 ...

  8. linux下查看一个文件的属性(ls,lsattr,file,stat)

    查看文件属性有多种方法,且这些方法中偏向不同,具体如下:1,ls    ls -a 查看所有文件    ls -l 查看详细的属性  2,lsattr    查看文件的扩展属性,    如果文件被 c ...

  9. linux下复制一个文件的内容到另一个文件

    cat path/to/file/filename1 >> path/to/file/filename2 例如: cat id_rsa.pub >> ~/.ssh/author ...

随机推荐

  1. Python描述符 (descriptor) 详解

    1.什么是描述符? python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访问.这些方法有 __get__(), __set__(), 和__delete__().如 ...

  2. Python基础知识:模块

    目录 JSON模块&pickle模块 requests模块 time模块 datetime模块 logging模块 os模块 sys模块 hashlib模块 re模块.正则表达式 config ...

  3. 【PAT】B1081 检查密码(15 分)

    水题 #include<cstdio> #include<string.h> #include<ctype.h> #include<algorithm> ...

  4. Jenkins 自动发布 Spring Boot 项目(Gitee)

    1.下载 wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war,并部署到tomcat下 2.机器安装好 java ,maven ,g ...

  5. 使用Gitkraken进行其他Git操作

    使用Gitkraken进行其他Git操作 查看某次 commit 的文件改动 使用 Gitkraken 能非常方便的看到任意一次的 commit 对项目文件的改动. 具体操作是:在树状分支图上单击某个 ...

  6. 团队Alpha博客链接目录

    Dipper团队Alpha博客链接目录 团队Alpha冲刺博客 第一次冲刺 第二次冲刺 第三次冲刺 第四次冲刺 第五次冲刺 第六次冲刺 第七次冲刺 第八次冲刺 第九次冲刺 第十次冲刺 第十一次冲刺 第 ...

  7. oc kvc的模式:匹配搜索模式(模式匹配)、装包解包

    按照一定规则使用匹配模式在目标空间进行搜索,然后执行相应操作: 运行时系统将kvc的运行机制解释为模式匹配,将值的兼容性问题解释为装包解包问题 一.模式匹配 The default implement ...

  8. Python基础视频

    链接:https://pan.baidu.com/s/1oPiS32sWVysuVAivtdFKnQ 密码私聊我

  9. 621. Task Scheduler

    https://www.cnblogs.com/grandyang/p/7098764.html 将个数出现最多的那个字符作为分隔的标准,一定是最小的.所以这个时候只需要计算还需要添加多少个idel就 ...

  10. [转]qtcreator中常用快捷键总结

    F1 查看帮助 F2 跳转到函数定义(和Ctrl+鼠标左键一样的效果) Shift+F2 声明和定义之间切换 F4 头文件和源文件之间切换 Ctrl+ 欢迎模式 Ctrl+ 编辑模式 Ctrl+ 调试 ...