脚本如下:
if [ "$1" == "" ]; then echo ./genconf.sh [TABLENAME] exit 1 fi source ../../../conf.properties TABLENAME=`basename $1` conf=conf_$DATE CF="f" dt_res="" function dt { if [ "$1" == "ROWKEY" ]; then dt_res=$1":" else dt_res=$CF"|"$1":" fi shift if [ "$#" == "1" ]; then dt_res=$dt_res"" else dt_res=$dt_res"concat(" fi for var in $@ do dt_res=$dt_res"trim("$var")," done # Delete the last , dt_res=${dt_res%%,} if [ "$#" != "1" ]; then dt_res=$dt_res")" fi } source ../../table_hbase/$TABLENAME rowSpec=$QUERY tmp=`cat ../../table_hive/$TABLENAME` fields='' for field in $tmp;do fields=$fields' '$field done fields=`echo ${fields:1}` echo $fields > $TABLENAME.bak textRecordSpec=`sed 's/ /,/g' $TABLENAME.bak` rm -f $TABLENAME.bak tablename=$TABLENAME"_"$DATE # Get the table source dir tablesourcedir=`grep $TABLENAME ../../table-oracle-tohbase.list | sed "s/%DATE%/$DATE/g" | awk -F ',' '{print $4}' ` echo "$TABLENAME : $tablesourcedir" # Get the split key spec splitkeyspec=`grep $TABLENAME splitkey.conf | awk -F '=' '{print $2}' ` echo "$TABLENAME : $splitkeyspec" cp template.properties $conf/$tablename.properties sed -i s/%TABLENAME%/$tablename/g $conf/$tablename.properties ---> s表示替换 g是正则 表示文件所有 %TABLENAME%表示文件中要替换的字符 $tablename是要替换的结果 $tablename.properties是目标文件 sed -i s/%TABLESOURCEDIR%/$tablesourcedir/g $conf/$tablename.properties 是直接在当前目录下将目标文件内容替换成需要的结果 sed -i s/%HDFS_URL%/"$HDFS_URL_SED"/g $conf/$tablename.properties sed -i s/%BULKLOAD_OUTDIR%/"$BULKLOAD_OUTDIR_SED"/g $conf/$tablename.properties sed -i s/%TEXTRECORDSPEC%/$textRecordSpec/g $conf/$tablename.properties sed -i s/%ROWSPEC%/$rowSpec/g $conf/$tablename.properties sed -i s/%SPLITKEYSPEC%/"$splitkeyspec"/g $conf/$tablename.properties
[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[动作行为] 』 function: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
相关推荐
例如,可以在程序中使用`sed`来自动修改源代码中的变量名或函数签名,从而简化重构工作。 #### 更多内容 - **扩展命令**:除了基本命令外,`sed`还提供了许多高级命令,如`a`、`c`、`y`等,这些命令可以实现更复杂...
### Linux Sed 使用手册详解 #### 引言 `sed`,即流编辑器(Stream Editor),是Unix/Linux系统中的一款强大的文本处理工具。它能够通过管道处理数据流,实现对文本文件的查找、替换、删除等操作,而无需直接修改...
`sed`广泛应用于文本的查找、替换、删除等操作,尤其在脚本中使用频繁,可以实现自动化文本处理。 **一. 什么是流编辑器?** 流编辑器,顾名思义,是处理数据流的一种编辑器。与传统的交互式文本编辑器不同,`sed`...
`sed`,全称为“stream editor”,是一种功能强大的文本处理工具,常用于Linux和类Unix系统中。它主要用于文本的过滤和转换工作,能够以流的形式读取并处理文本数据。在处理过程中,`sed`会将每一行内容存储在内存中...
Sed 命令中各种使用方式 Sed 命令是一种在线编辑器,它一次处理一行内容。Sed 主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 替换命令 Sed 的替换命令的语法是 `s[address]s/...
如果sed中有多个编辑命令,它们的顺序会影响处理的结果。例如,sed 's/pig/cow/;s/cow/horse/' test这条命令会先将“pig”替换成“cow”,然后将“cow”替换成“horse”。由于sed处理的是经过前一个命令修改后的行,...
在Linux系统中,`sed`(流编辑器Stream Editor)是一个强大的文本处理工具,它能够对输入流(标准输入或指定文件)进行实时编辑,并将处理结果输出到标准输出或重定向到其他文件。在软件开发、系统管理以及日常文本...
在IT行业中,Linux系统是广泛使用的操作系统,而`sed`(流编辑器)是Linux下进行文本处理的重要工具。本文将深入探讨`sed`的基本概念、常用命令以及实际应用,帮助你更好地理解和掌握这一强大的文本处理利器。 `sed...
Linux中的`sed`(Stream Editor)命令是一种强大的文本处理工具,它能对输入流(标准输入、文件或者管道)进行实时处理。`sed`的工作方式是读取一行文本,对其进行处理,然后输出,接着处理下一行,直到文件末尾。这...
Linux中的sed命令是一个非常强大的文本处理工具,它能够实现对文本文件的编辑操作,而无需打开文本编辑器。sed支持正则表达式,可以快速地对文件中的特定字符串进行查找和替换,批量修改文件内容等操作。下面详细...
什么是sed:主要介绍什么是sed工具,sed工具的主要操作、工作方式以及地址表示方法,在sed命令中使用正则表达式等。 sed命令的常用操作:主要介绍sed命令的注释方法,打印文本,替换文本,删除文本,追加文本,插入...
linux shell sed 使用详解 整理的很好。很不错的资源。写脚本全靠这个了。
Linux系统下的sed命令是一个流编辑器,它能够对文本文件或标准输入进行处理并输出。...需要注意的是,由于文件内容的多样性和复杂性,实际使用时需要根据具体情况调整sed命令中的正则表达式和参数选项。
文档中的“sed命令使用说明”则是对文档内容的进一步描述,即文档将解释如何使用SED命令以及相应的用法。 SED脚本中可以实现的功能非常丰富,包括但不限于文本间隔的调整、文件的行号编号、文本的转换和替代等。...
### Linux Sed 各个参数详解 #### 概述 `sed`(stream editor)是Linux系统下一款功能强大的...熟悉并掌握`sed`命令及其参数对于日常的Linux操作和维护工作非常重要。希望本文能帮助读者更好地理解和应用`sed`命令。
2. 正则表达式:深入解析sed中的正则表达式语法,包括字符类、量词、锚点和分组等。 3. 行地址和范围:如何使用行地址来指定sed应该操作的行,以及如何使用地址范围来处理多行。 4. Sed脚本:编写复杂的sed脚本,...
注释必须以井字号 `#` 开头,并且在System V风格的sed中,注释通常只出现在脚本的第一列。在某些版本(如GNU sed)中,注释可以在脚本的任何位置。注释可以跨多行,使用反斜线 `\` 继续到下一行。若注释前加上数字 `...
Linux 主要shell命令、sed、awk使用详解 Linux 主要shell命令详解 shell 是用户和 Linux 操作系统之间的接口。Linux 中有多种 shell,其中缺省使用的是 Bash。本章讲述了 shell 的工作原理,shell 的种类,shell ...
linux shell命令sed的使用方法
- **转义字符**:在sed中,`\`用于转义特殊字符。 - 示例:`sed 's/\./dot/g' file` 将句点替换为“dot”。 8. **组合命令** - 可以通过管道(`|`)组合多个命令,实现更复杂的文本处理逻辑。 - 示例:`cat file ...