`

linux sed 工作中使用

 
阅读更多

 

 

脚本如下:

 

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 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 1020 行之间进行的,则『 10,20[动作行为] 』

function:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
分享到:
评论

相关推荐

    linux中sed的使用

    例如,可以在程序中使用`sed`来自动修改源代码中的变量名或函数签名,从而简化重构工作。 #### 更多内容 - **扩展命令**:除了基本命令外,`sed`还提供了许多高级命令,如`a`、`c`、`y`等,这些命令可以实现更复杂...

    linux Sed 使用手册

    ### Linux Sed 使用手册详解 #### 引言 `sed`,即流编辑器(Stream Editor),是Unix/Linux系统中的一款强大的文本处理工具。它能够通过管道处理数据流,实现对文本文件的查找、替换、删除等操作,而无需直接修改...

    Linux sed 教学PPT

    `sed`广泛应用于文本的查找、替换、删除等操作,尤其在脚本中使用频繁,可以实现自动化文本处理。 **一. 什么是流编辑器?** 流编辑器,顾名思义,是处理数据流的一种编辑器。与传统的交互式文本编辑器不同,`sed`...

    linux sed命令详解

    `sed`,全称为“stream editor”,是一种功能强大的文本处理工具,常用于Linux和类Unix系统中。它主要用于文本的过滤和转换工作,能够以流的形式读取并处理文本数据。在处理过程中,`sed`会将每一行内容存储在内存中...

    linux命令中Sed各种使用方式

    Sed 命令中各种使用方式 Sed 命令是一种在线编辑器,它一次处理一行内容。Sed 主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 替换命令 Sed 的替换命令的语法是 `s[address]s/...

    Linux中sed如何处理文本

    如果sed中有多个编辑命令,它们的顺序会影响处理的结果。例如,sed 's/pig/cow/;s/cow/horse/' test这条命令会先将“pig”替换成“cow”,然后将“cow”替换成“horse”。由于sed处理的是经过前一个命令修改后的行,...

    linux sed 常用用法举例01

    在Linux系统中,`sed`(流编辑器Stream Editor)是一个强大的文本处理工具,它能够对输入流(标准输入或指定文件)进行实时编辑,并将处理结果输出到标准输出或重定向到其他文件。在软件开发、系统管理以及日常文本...

    Linux sed使用

    在IT行业中,Linux系统是广泛使用的操作系统,而`sed`(流编辑器)是Linux下进行文本处理的重要工具。本文将深入探讨`sed`的基本概念、常用命令以及实际应用,帮助你更好地理解和掌握这一强大的文本处理利器。 `sed...

    linux sed 命令详解

    Linux中的`sed`(Stream Editor)命令是一种强大的文本处理工具,它能对输入流(标准输入、文件或者管道)进行实时处理。`sed`的工作方式是读取一行文本,对其进行处理,然后输出,接着处理下一行,直到文件末尾。这...

    Linuxsed批量替换字符串方法.pdf

    Linux中的sed命令是一个非常强大的文本处理工具,它能够实现对文本文件的编辑操作,而无需打开文本编辑器。sed支持正则表达式,可以快速地对文件中的特定字符串进行查找和替换,批量修改文件内容等操作。下面详细...

    Linux-02sed.ppt

    什么是sed:主要介绍什么是sed工具,sed工具的主要操作、工作方式以及地址表示方法,在sed命令中使用正则表达式等。 sed命令的常用操作:主要介绍sed命令的注释方法,打印文本,替换文本,删除文本,追加文本,插入...

    linux shell sed 使用详解

    linux shell sed 使用详解 整理的很好。很不错的资源。写脚本全靠这个了。

    Linux下sed命令的用法

    Linux系统下的sed命令是一个流编辑器,它能够对文本文件或标准输入进行处理并输出。...需要注意的是,由于文件内容的多样性和复杂性,实际使用时需要根据具体情况调整sed命令中的正则表达式和参数选项。

    linux下SED脚本参考

    文档中的“sed命令使用说明”则是对文档内容的进一步描述,即文档将解释如何使用SED命令以及相应的用法。 SED脚本中可以实现的功能非常丰富,包括但不限于文本间隔的调整、文件的行号编号、文本的转换和替代等。...

    linux,sed各个参数详解

    ### Linux Sed 各个参数详解 #### 概述 `sed`(stream editor)是Linux系统下一款功能强大的...熟悉并掌握`sed`命令及其参数对于日常的Linux操作和维护工作非常重要。希望本文能帮助读者更好地理解和应用`sed`命令。

    linuxsed与awk第三版

    2. 正则表达式:深入解析sed中的正则表达式语法,包括字符类、量词、锚点和分组等。 3. 行地址和范围:如何使用行地址来指定sed应该操作的行,以及如何使用地址范围来处理多行。 4. Sed脚本:编写复杂的sed脚本,...

    linux script 好用的sed命令

    注释必须以井字号 `#` 开头,并且在System V风格的sed中,注释通常只出现在脚本的第一列。在某些版本(如GNU sed)中,注释可以在脚本的任何位置。注释可以跨多行,使用反斜线 `\` 继续到下一行。若注释前加上数字 `...

    Linux主要shell命令、sed、awk使用详解

    Linux 主要shell命令、sed、awk使用详解 Linux 主要shell命令详解 shell 是用户和 Linux 操作系统之间的接口。Linux 中有多种 shell,其中缺省使用的是 Bash。本章讲述了 shell 的工作原理,shell 的种类,shell ...

    linux shell命令sed的使用方法

    linux shell命令sed的使用方法

    linux脚本编程中的sed详解

    - **转义字符**:在sed中,`\`用于转义特殊字符。 - 示例:`sed 's/\./dot/g' file` 将句点替换为“dot”。 8. **组合命令** - 可以通过管道(`|`)组合多个命令,实现更复杂的文本处理逻辑。 - 示例:`cat file ...

Global site tag (gtag.js) - Google Analytics