GNU sed

shell编程之文本处理工具sed初探

筅森魡賤 提交于 2021-02-04 08:22:50
SED命令的功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大,sed全称是:Stream EDitor.它主要是 以行为单位 进行处理,可以将数据行进行 替换 、 删除 、 新增 、 选取 等特定工作.特别强调一点, sed的操作对源文件不作修改 . 使用方法 基本用法 sed [-nei] 'command' filename 参数说明 -n 使用安静模式.只有经过处理的那一行才会被列出来.(一般情况,所有内容都会被列到屏幕上) -e 直接在指令列模式上进行sed的动作编辑 -i 直接修改读取的档案内容,而不是有屏幕输出 核心命令 a 新增 ,a后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行) c 取代 ,c后面可以接字符串,这些字符串可以取代n1,n2之间的行 d 删除 ,d后面不接任何字符串. i 插入 ,i后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行) p 打印 ,通常会和sed -n 一起使用 s 取代 ,通常这个s动作可以搭配正则表达式一起使用. n 读取下一行 y 指定 替换 # a换成A,b换成B,c换成C sed 'y/abc/ABC' file q 退出 样例演示 显示第40行到最后一行 sed -n '40,$p' /etc/passwd 在第40行到最后一行后面添加字符串"

deeplab 训练自己的数据集

随声附和 提交于 2021-02-02 07:01:22
首先感谢教程 http://blog.csdn.net/ruotianxia/article/details/78331964 很全面很详细 1.配置好deeplab_v2 source code:https://bitbucket.org/aquariusjay/deeplab-public-ver2/src 配置过程不做描述了。。 2.建立一个项目文件夹,文件夹里包括子文件夹config feature feature2 list log model res 为了方便可以复制这个git里的voc2012后做修改 https://github.com/xmojiao/deeplab_v2 3.数据的准备。 数据主要包括图片以及图片对应的label(也为png图片),可以存放在任意你喜欢的位置,后续只需给定路径即可。将数据分为训练和验证集制作list 具体格式参照voc2012 list文件夹中的格式。 为了后续测试最好也留一部分做test set。 另外还有val跟test的图片id list 只要id 不要前缀 4.训练的protxt文件存放在config/deeplab_largeFOV中,在这里使用的shell文件 run_pascal.sh 训练故 trainval.pt 不用修改, 在solver.pt中可修改lr及模型存放位置等。。 5.修改run_pascal.sh

awk速查手册

◇◆丶佛笑我妖孽 提交于 2021-01-25 03:14:09
awk速查手册 score.txt cat score.txt Marry 2143 78 84 77 Jack 2321 66 78 45 Tom 2122 48 77 71 Mike 2537 87 97 95 Bob 2415 40 57 62 netstat.txt $cat netstat.txt Proto Recv-Q Send-Q Local-Address Foreign-Address State tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN tcp 0 0 coolshell.cn:80 124.205.5.146:18245 TIME_WAIT tcp 0 0 coolshell.cn:80 61.140.101.185:37538 FIN_WAIT2 tcp 0 0 coolshell.cn:80 110.194.134.189:1032 ESTABLISHED tcp 0 0 coolshell.cn:80 123.169.124.111:49809 ESTABLISHED tcp 0 0 coolshell.cn:80 116.234.127.77:11502 FIN

Linux 正则表达式 grep

非 Y 不嫁゛ 提交于 2021-01-24 14:26:37
容易混淆的两个注意事项: 1)linux正则表达式一般是以行为单位处理的。 2)正则表达式和我们常用的通配符特殊字符是有本质区别的,例如:ls *.txt 这里的*就是通配符(表示所有),不是正则表达式。 注意字符集问题: 确保字符集:export LC_ALL=C --------------------------------------------- 基础正则表达式+扩展正则表达式含义解释: --------------------------------------------- . 代表且只能代表任意一个字符(不包括空行) * 重复前面任意0个或多个字符 .* 匹配所有字符。(包括空行) sed -ri 's#(.*)#\1#g' bqh.txt 把前面正则匹配的括号内的结果,在后面用\1取出来操作。 ^ 表示以什么开头,^bqh 以bqh开头 $ 是以什么结尾 ^$ 表示空行。 \ 例\. 就只代表点本身,转义符号,让有着特殊身份移动的字符,脱掉马甲,还原原型\$ ^.* 以任意多个字符开头。 .*$ 以任意多个字符结尾。 (.*) 从第一字符匹配,到空格停止, [abc] 匹配字符集合内的任意一个字符【a-zA-Z】 [^abc] 匹配不包括^后的任意字符的内容;中括号里的^为取反,注意和以...开头区别。 a\{n,m\} 重复n到m次,前一个重复的字符

docker化canal与canal-adapter

纵饮孤独 提交于 2021-01-24 01:46:29
今日公司需求,需要将mysql更新实时同步到kafka中,后来又要将数据库中的一张表的变化实时同步到另一台mysql中,于是乎canal与canal-adapter紧急解决,其中踩了不少坑,下面为总结内容 官方文档: https://github.com/alibaba/canal/wiki 一、canal镜像的创建及canal的compose文件 1、Dockerfile文件内容 FROM openjdk: 8 -jre- alpine ADD [ " canal.tar.gz " , " /opt/ " ] WORKDIR /opt/ canal EXPOSE 11110 11112 COPY [ " entrypoint.sh " , " / " ] VOLUME [ " /opt/canal/logs " , " /opt/canal/conf " ] ENTRYPOINT /entrypoint. sh View Code 2、entrypoint.sh文件内容 #!/bin/ sh Base_dir =/opt/canal/ conf Log_dir =/opt/canal/ logs if [ -n ${canal_instance_master_address} ]; then sed -i " /^canal.instance.master.address=

Linux之SElinux安全上下文件(1)

随声附和 提交于 2021-01-22 06:19:45
SELinux:Secure Enhanced Linux,是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Computing Courporation)开发的LInux的一个强制控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后继承在内核中。 访问控制类别: DAC:Discretionary Access Control 自由访问控制 MAC:Mandatory Access Control 强制访问控制 DAC和MAC的特点: DAC环境下进程是无束缚的 MAC环境下策略的规则决定控制的严格程度 MAC环境下进程可以被限定的 策略被用来定义被限定的进程能够使用那些资源(文件和端口) 默认情况下,没有被明确允许的行为将被拒绝 SElinux安全上下文工作类型: strict:centos5,每个进程都受到selinux的控制 targeted:用来保护常见的网络服务,仅有限进程受到 selinux控制, 只监控容易被入侵的进程,rhel4只保护13个服务,rhel5保护88个服务 minimum:centos7,修改过的targeted,只对选择的网络服务。 mls:提供MLS(多级安全)机制的安全性 minimum和mls稳定信不足,未加以应用 为什么会用SElinux 传统的

Linux常用命令大全

假如想象 提交于 2021-01-21 18:13:15
最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列 PCI 设备 lsusb -tv 显示 USB 设备 date 显示系统日期 cal 2007 显示2007年的日历表 date 041217002007.00 设置日期和时间 - 月日时分年.秒 clock -w

干货!21条常用的Linux 命令

淺唱寂寞╮ 提交于 2021-01-17 09:00:22
阅读本文大概需要 7.8 分钟。 来源: http://t.cn/EqTIhES 一、文件和目录 1. cd命令 (它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径) cd /home 进入 '/ home' 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 2. pwd命令 pwd 显示工作路径 3. ls命令 查看文件与目录的命令,list之意) ls 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 列出全部文件,包含隐藏文件 ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来 ls [0-9] 显示包含数字的文件名和目录名 4. cp命令 (用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下) -a :将文件的特性一起复制 -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份 -i :若目标文件已经存在时,在覆盖时会先询问操作的进行 -r :递归持续复制,用于目录的复制行为 -u :目标文件与源文件有差异时才会复制 5. mv命令 (用于移动文件、目录或更名,move之意) -f :force强制的意思,如果目标文件已经存在

BATJ 常考的 21 条 Linux 命令

风格不统一 提交于 2021-01-17 03:47:37
阅读本文大概需要 7.8 分钟。 来源: http://t.cn/EqTIhES 友情提示 :之前的送书活动将于明天截止(4.29),还没有参与的小伙伴可以到这里参与下: Linux云计算如何入门,送 3 本经典纸质书 图个手气,重在参与,之后还会给大家争取更多这样的活动,希望大家多多支持。 一、文件和目录 1. cd命令 (它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径) cd /home 进入 '/ home' 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 2. pwd命令 pwd 显示工作路径 3. ls命令 查看文件与目录的命令,list之意) ls 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 列出全部文件,包含隐藏文件 ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来 ls [0-9] 显示包含数字的文件名和目录名 4. cp命令 (用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下) -a :将文件的特性一起复制 -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份 -i :若目标文件已经存在时,在覆盖时会先询问操作的进行