sed

1. shell 简明教程

∥☆過路亽.° 提交于 2020-03-23 17:20:17
1.变量运算 2.条件分支语句 3.循环语句 4.函数 5.read 使用 6.sort 使用 7.grep 使用 8.sed 使用 9.awk 使用 10.获取当前脚本所在的绝对路 11. 批量替换文件里面的内容 12. 如何判断一个变量是否被赋值 TOC 1.变量运算 特殊变量 $0 :当前脚本变量名字 $n :传入脚本或函数的第几个参数 $# :传输脚本或函数的参数个数 $* :传给脚本或函数的所有参数 $@ :传给脚本或函数的所有参数 $? :上一个命令的返回值 $$ : 当前shell 进程ID 测试脚本 #!/bin/bash a=20 b=10 val=$(expr ${a} + ${b}) echo ${val} val=$(expr ${a} - ${b}) echo ${val} val=$(expr ${a} \* ${b}) echo ${val} val=$(expr ${a} / ${b}) echo ${val} val=$(expr ${a} % ${b}) echo ${val} if [ ${a} == ${b} ];then echo "a == b" fi if [ ${a} != ${b} ];then echo "a != b" fi 测试脚本 #!/bin/bash name1="mark" name2="mark" age1=22

Remove everything in a line before comma

╄→尐↘猪︶ㄣ 提交于 2020-03-22 23:16:33
问题 I have multiple files with lines like: foo, 123456 bar, 654321 baz, 098765 I would like to remove everything on each line before (and including) the comma. Output would be: 123456 654321 098765 I attempted use the following after seeing something similar on another question, but the user didn't leave an explanation, so I'm not sure how the wildcard would be handled: find . -name "*.csv" -type f | xargs sed -i -e '/*,/d' Thank you for any help you can offer. 回答1: METHOD 1: If it's always the

Remove everything in a line before comma

守給你的承諾、 提交于 2020-03-22 23:13:16
问题 I have multiple files with lines like: foo, 123456 bar, 654321 baz, 098765 I would like to remove everything on each line before (and including) the comma. Output would be: 123456 654321 098765 I attempted use the following after seeing something similar on another question, but the user didn't leave an explanation, so I'm not sure how the wildcard would be handled: find . -name "*.csv" -type f | xargs sed -i -e '/*,/d' Thank you for any help you can offer. 回答1: METHOD 1: If it's always the

截取命令cut命令、awk命令、sed命令

旧时模样 提交于 2020-03-22 15:09:26
cut命令 截取以制表符tab为分隔符的第一列 cut -f 1test.txt 截取以":"为分隔符的第一列,如果比较规律的文件,可以自己设定分隔符 cut -f 1 -d ':' tset.txt 截取以“:”为分隔符的第一列和第三列 cut -f 1,3 -d ':' tset.txt #命令都是用的英文状态的符号 awk命令 截取第二列和第四列,默认为空格,或者制表符 awk ‘{print $2 "\t" $4}’ test.txt 截取以:为分隔符的第一列和第三列 awk '{FS=":"}{print $1 "\t" $3}' test.txt 也可以写成:awk -F ":" '{print $1 "\t" $3}' 也可以写成 awk '{FS=":"}{print $1 "\t" $3}' (这是一个比较标准的写法) sed命令:其实是替换操作,sed修改的只是显示的内容,文件并未修改 输出第十行,-n必须要加,否则会显示所有内容,-i表示修改文件内的内容,这个谨慎操作,-e则表示执行多个动作 sed -n '10p' regular_express.txt 删除2-4行 sed '2,4d' regular_express.txt 在第二行上一行显示wanmei sed '2i wanmei' regular_express.txt

第五周作业

隐身守侯 提交于 2020-03-22 12:42:21
1、查找/etc目录下大于1M且类型为普通文件的所有文件 [root@centos7 ~]#find /etc -size +1M -type f 2、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。 tar -zcvf /usr/local/src/ date +%F .tar.gz /etc/*.conf 3、利用sed 取出ifconfig命令中本机的IPv4地址 [root@centos7 ~]#ifconfig eth0|sed -n '2p'|sed -nr 's/(^[^0-9]+)([0-9.]+)( .*$)/\2/p' 4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符 [root@centos7 ~]#sed -r 's@^#[[:space:]]+@@' /etc/fstab 5、处理/etc/fstab路径,使用sed命令取出其目录名和基名 目录名: [root@centos7 ~]#echo /etc/fstab|sed -nr 's@(. /)([^/]+$)@\1@p' 基名: [root@centos7 ~]#echo /etc/fstab|sed -nr 's@(. /)([^/]+$)@\2@p' 来源: 51CTO 作者:

Linux基础(二)之命令

﹥>﹥吖頭↗ 提交于 2020-03-21 16:38:44
01-基础命令 1. 创建一个目录 mkdir /data 创建多级目录 mkdir -p /oldboy/data 2. 查看目录里面的内容 ls /data 3. 查看目录里面的详细信息 ls -l /data 4. 进入到某个目录 cd /data 5. 显示当前位置 pwd 6. 创建文件、更新文件的时间戳 touch /data/hyp.txt 7. 编辑文件 vi /data/hyp.txt 按 i 进行插入模式,按esc键,输入 :wq 保存退出,:q 退出,:q! 强制退出,:wq! 强制保存退出 8. 查看文件hyp.txt内容 cat hyp.txt 9. echo+内容 会把内容显示到屏幕上 echo hello world echo hello world >>/data/hyp.txt 追加到文件里 >> 追加重定向 cat >>/data/hyp.txt <<EOF 追加多行(EOF表示结束标记) 10. 重定向符号 > 标准输出重定向 (先清空文件里的内容,再写入内容) >> 追加重定向 11. 复制 cp /data/hyp.txt /tmp 12. 备份hyp.txt文件 cp /data/hyp.txt /data/hyp.txt.bak 13. 复制目录及目录下的内容 cp -r /data/ /tmp/ cp -a /data/ /tmp/

Linux-sed command

≡放荡痞女 提交于 2020-03-19 20:28:02
sed命令 sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 sed的选项、命令、替换标记 命令格式 sed [options] 'command' file(s) sed [options] -f scriptfile file(s) 选项 -e sed的选项、命令、替换标记 命令格式 sed [options] `command` file(s) sed [options] -f scriptfile file(s) 选项与参数: -e(script)或--expression=(scrip):以选项中指定的script来处理输入的文本文件 -f(script文件)或--file=(script文件):以选项中指定的script文件来处理输入的文本文件 -n或--quiet或--silent:仅显示script处理后的结果-V或--version:显示版本信息 -n :使用安静(silent)模式。在一般

开发人员行走Unix的随身四艺

邮差的信 提交于 2020-03-19 13:58:43
Unix系统永远只会越来越多,开发人员就没必要特意学习它们的安装、配置和管理了,就全部交给集成人员吧。 但开发人员行走于Unix之间,依然有四样东西要熟练。 一、VI 虽然Unix上的文本编辑器已经越来越好用,但不在Console前面,网速也不够连XWindows的时候,还是要依赖VI。 回想VI的时代背景,发现VI对开发人员已经周到得离谱了,热键多到你双手不离键盘就能完成大半编辑工作。 建议自己制作一张自己认为有用,但又经常忘记的命令的sheet,拿出考试的力气把它背熟。 二、文本处理 开发人员在Unix下干得最多的除了Make和除Bug外,大概就是处理日志文件、业务文件进行查错和统计了。 只会more和grep是不够的,开发老手会把awk,sed,grep,sort,unique,wc这些文本处理命令,通过管道玩具式的拆卸拼装,最后完成一件原本以为非编写大段代码不可的工作。周到的参数设定,让人再一次感叹那个简单的年代,复杂到极致的设计.......怪不得《Unix 编程艺术》的作者有那么骄傲的自觉。 比如车东的每月访问TOP10 统计脚本: awk -F ' t' '{ print $ 4 }' 2004_2 . txt| grep chedong . com / tech / | sort |uniq -c| sort -rn|head - 10 awk -F '/t'

搭建OpenStack私有云准备工作

瘦欲@ 提交于 2020-03-17 22:53:49
Centos7 安装完成后克隆其他子节点 首先在 VMware 中:右击 虚拟机 controller--> 设置 --> 添加 --> 网络适配器,然后做如下设置: 在 VMware 中操作 点击:克隆 --> 下一步 --> 虚拟机中的当前状态 --> 创建完整克隆 --> 下一步(克隆 controller 、 compuet 、 storage ) 总体硬件架构: 添加虚拟网络 步骤:打开 VMware--> 点击编辑 --> 虚拟网络编辑器 --> 更改设置 --> 添加网络(备用) 添加成功后可以修改网段也可以不改 , 我这里改为 10.0.0.0 网段 最终效果: Controller Compute Storage Linux 修改主机名 命令方式修改 [root@ Core ~]# hostnamectl set-hostname compute [root@Core ~]# hostname compute [root@Core ~]# exit 重新登录发现主机名修改成功了! 修改配置文件 [root@Core ~]# echo "storage" > /etc/hostname [root@Core ~]# hostname storage [root@Core ~]# exit 重新登录发现主机名修改成功了! 最终要确保重启后主机名不重复,且有以下三台主机