linux系统

linux sed 批量替换字符串

耗尽温柔 提交于 2020-03-15 09:00:20
#################################################### 获取文件内容处理输出 ############################################################## #解析入库配置,获取表名: echo -e '[table]\ntablename=entry_listquery_fatdt0|flatcookie_fatdt0|path_fatdt0|path_stream_fatdt0|refer_listquery_fatdt0' > ./testfile sed -n 's/^tablename=//p' ./testfile | sed -e 's/|/\n/g' -e 's/\r//g' | sort | uniq > ./test_tablename #(-n)选项和p标志一起使用表示只打印那些发生替换的行 #(-e)选项允许在同一行里执行多条命令,上面是将'|'替换为换行,然后将\r去除 #校验入库配置表名和文件名数量是否一致: tableCount=`wc -l ./test_tablename` fileCount=`ll jobs/EnLog/DFSLoader/conf/loaddb | wc -l ` fileCount=`echo $fileCount-1 | bc`

linux sed命令详解

一曲冷凌霜 提交于 2020-03-15 09:00:07
简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 sed使用参数 [root@www ~]# sed [-nefr] [动作] 选项与参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e :直接在命令列模式上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作; -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法) -i :直接修改读取的文件内容,而不是输出到终端。 动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』

linux sed 批量替换字符串

孤街浪徒 提交于 2020-03-15 08:59:48
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件。 (1)sed 'y/1234567890/ABCDEFGHIJ/' test_sed sed 'y/1234567890/ABCDEFGHIJ/' filename ABCDEFGHIJ BCDEFGHIJA CDEFGHIJAB DEFGHIJABC 注意变换关系是按两个list的位置对应变换 其中:test_sed的内容是: 1234567890 2345678901 3456789012 4567890123 (2) 替换每行所有匹配 sed 's/01/Ab/g' test_sed 1234567890 23456789Ab 3456789Ab2 456789Ab23 注意:第一行的0,1没有分别替换为A,b 删除:d命令 $ sed '2d' example-----删除example文件的第二行。 $ sed '2,$d' example-----删除example文件的第二行到末尾所有行。 $ sed '$d'

linux sed 批量替换字符串

为君一笑 提交于 2020-03-15 08:59:26
sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件。 (1)sed 'y/1234567890/ABCDEFGHIJ/' test_sed sed 'y/1234567890/ABCDEFGHIJ/' filename ABCDEFGHIJ BCDEFGHIJA CDEFGHIJAB DEFGHIJABC 注意变换关系是按两个list的位置对应变换 其中:test_sed的内容是: 1234567890 2345678901 3456789012 4567890123 (2) 替换每行所有匹配 sed 's/01/Ab/g' test_sed 1234567890 23456789Ab 3456789Ab2 456789Ab23 注意:第一行的0,1没有分别替换为A,b 删除:d命令 $ sed '2d' example-----删除example文件的第二行。 $ sed '2,$d' example-----删除example文件的第二行到末尾所有行。 $ sed '$d' example-----删除example文件的最后一行。 $ sed '/test/'d

linux sed 批量替换字符串

时光总嘲笑我的痴心妄想 提交于 2020-03-15 08:59:15
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件。 (1)sed 'y/1234567890/ABCDEFGHIJ/' test_sed sed 'y/1234567890/ABCDEFGHIJ/' filename ABCDEFGHIJ BCDEFGHIJA CDEFGHIJAB DEFGHIJABC 注意变换关系是按两个list的位置对应变换 其中:test_sed的内容是: 1234567890 2345678901 3456789012 4567890123 (2) 替换每行所有匹配 sed 's/01/Ab/g' test_sed 1234567890 23456789Ab 3456789Ab2 456789Ab23 注意:第一行的0,1没有分别替换为A,b 删除:d命令 $ sed '2d' example-----删除example文件的第二行。 $ sed '2,$d' example-----删除example文件的第二行到末尾所有行。 $ sed '$d'

linux文本处理三剑客之sed

血红的双手。 提交于 2020-03-15 08:33:33
上一节我们已经学习过了grep,今天来学习sed。它是按照script的指令,来处理,编辑一个或多个文本文件,简化对文件的反复操作,编写转换程序等。 sed用法 sed 选项 动作 输入文件 参数说明 : -n 不输出到屏幕,不打印(默认打印) -e 多点编辑输入的文本文件 -f 以选项中指定的script文件来处理输入的文本文件 -r 扩展正则表达式 -h 显示帮助 -v 显示版本信息 -i sed 的『 -i 』选项可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订! 实例: -n : [root@localhost ~]# seq 1 10 |sed -n '8p' 8 [root@localhost ~]# seq 1 10 |sed -n "$[$(seq 1 10|wc -l)-1]p" 9 #输出倒数第二行 -e : [root@localhost ~]# sed -e 2a\desk e how are you? apple banana apple desk wine tea juice desk chair -r : [root@localhost app]

linux之sed的用法

蓝咒 提交于 2020-03-15 08:18:44
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefri] 'command' filename 常用选项: -n:使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。 但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e:直接在指令列模式上进行 sed 的动作编辑; -f: 直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作; -r: sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法) -i: 直接修改读取的档案内容 ,而不是由屏幕输出。 常用命令: a:新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c:取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d:删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p:列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~ s:取代,可以直接进行取代的工作哩

Linux命令 - sed

て烟熏妆下的殇ゞ 提交于 2020-03-15 08:17:26
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e∶直接在指令列模式上进行 sed 的动作编辑; -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作; -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法) -i∶直接修改读取的档案内容,而不是由萤幕输出。 常用命令: a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~ s ∶取代,可以直接进行取代的工作哩!通常这个 s

Linux Shell之sed命令

自闭症网瘾萝莉.ら 提交于 2020-03-15 08:16:03
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e∶直接在指令列模式上进行 sed 的动作编辑; -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作; -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法) -i∶直接修改读取的档案内容,而不是由萤幕输出。 常用命令: a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~ s ∶取代,可以直接进行取代的工作哩!通常这个 s

Linux软件安装管理---源码安装

半世苍凉 提交于 2020-03-15 07:27:25
在Linux平台下,软件包的类型可以划分为两类:源码包、二进制包。 源码包: 即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包)。 二进制包: 如 Red Hat发行版的.rpm包,Debian发行版的.deb包。 源码安装的主要步骤 : 1)获取源代码文件:一般为压缩包,并解压。 2)执行config: 一般在源代码目录中有install 或 readme等说明。 运行./config --prefix=PREFIX或者 ./config, config是一个可执行文件,其作用是检测操作系统,并生成makefile文件。其检测的内容有:系统中是否有合适的编译器来编译本软件,是否已经存在本软件所需要的函数库或其他相关软件,操作系统版本是否符合要求等。其中,PREFIX为安装位置。 曾经自己编译qt源码时,运行config时,其先生成了qmake,然后qmke根据.pro文件生成makefile文件。 3)执行make命令。 make根据makefile中指定的规则来将源代码编译成可执行文件。但是,这些可执行文件被放在当前目录下,不会安装到预定的安装目录中。 4)执行make install make会根据makefile中关于install的选项,将上一步编译出来的东西(?)搞到指定的安装目录中。 -----------------------