首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sed命令删除一行

Sed命令删除一行
EN

Stack Overflow用户
提问于 2016-03-10 07:45:52
回答 1查看 85关注 0票数 0

我希望删除与测试文件中的指定模式匹配的行。我想使用命令sed /‘line来匹配linux shell脚本中的/d。这是代码:

代码语言:javascript
复制
#Define input parameters
SCRIPT_NAME=$(basename $0)
PATHFILE=$1
NAMEFILE1=$2
NAMEFILE2=$3
HEADEREXPRESSION=$4
#Define input file
INPUTFILE1=$PATHFILE$NAMEFILE1
INPUTFILE2=$PATHFILE$NAMEFILE2
TEMPFILE=${INPUTFILE2}_TMP
touch $TEMPFILE
echo $INPUTFILE2
echo $HEADEREXPRESSION
echo $TEMPFILE 
#Remove header line from the second document
sed '/${HEADEREXPRESSION}/d' $INPUTFILE2 >> $TEMPFILE 
#rm -f $INPUTFILE2   
#echo $TEMPFILE >> $INPUTFILE1

在这段代码中,我希望从测试文件中与变量HEADEREXPRESSION中的表达式匹配的第一行中删除。然后,结果将放置tmp变量。

这是文本文件:

$SYSDATE$|PARENT_ELID|PARENT_ID_NUMBER|PARENT_REV|PARENT_LASTUPDATE_DATE|CHILD_ELID|CHILD_ID_NUMBER|CHILD_REV|CHILD_STATE|CHILD_LASTUPDATE_DATE|TSITEM|QUANTITY_DMS|OPTION_NAME| 2016/03/09 05:00:11比对AQJ2DJTH_ 2016/03/09 05:00:11比对AQJ2DJTL 185273-14 NC编号2016/03/09 01:49:58|AZEUQ03Z0047AR|185273-15|A|RELEASED|2003/01/15 09:46 2016/03/09 05:00:11|C3PK881C6A5JK0|201200-142|M|2016/03/09 03:20:26|C3PK881BU135M0|201200-142EX|NC|RELEASED|2016/03/09 03:21:26 2016/03/09 05:00:11|C3PK881C6A5JK0|201200-142|M|2016/03/09 03:20:26|C3PK881BU2HVF0|201200-142RL|NC|RELEASED|2014/07/23 09:35:14\x{e 010}1 2016/03/09 05:00:11|BU9WPBTYLTYC60|3112535-02|NC|2016/03/09 04:58:35|BU9WPBTYMATB60|3112865-02|NC|CREATE|2016/02/26 02:40:14 2016/03/09 05:00:11|BU9WPBTYLTYC60|3112535-02|NC|2016/03/09 04:58:35|DN09DMYM1ROY70|3112892|NC|RELEASED|2011/05/13 21:09:16 2016/03/09 05:00:11|BU9WPBTYLTYC60|3112535-02|NC|2016/03/09 04:58:35|DN09DMYM2CRJP0|3112897|D2|RELEASED|2011/07/24 13:41:16 2016/03/09 05:00:11|BU9WPBTYLTYC60|3112535-02|NC|2016/03/09 04:58:35|DN09DMYL210V60|1900169-1205|NC|RELEASED|2011/06/02 08:14:33

我希望使用如下模式表达式删除第一行:

代码语言:javascript
复制
$SYSDATE$|PARENT_ELID|PARENT_ID_NUMBER|PARENT_REV|PARENT_LASTUPDATE_DATE|CHILD_ELID|CHILD_ID_NUMBER|CHILD_REV|CHILD_STATE|CHILD_LASTUPDATE_DATE|TSITEM|QUANTITY_DMS|OPTION_NAME|

我使用以下行命令调用此脚本:

代码语言:javascript
复制
./delete_headeer.sh /wmextdata/scripts/DEV/primavera/SS_IPP_SOSLOAD/ SSP6_LINKS.TXT-20160309-000341 SSP6_LINKS.TXT-20160309_121000 "\$SYSDATE$|PARENT_ELID|PARENT_ID_NUMBER|PARENT_REV|PARENT_LASTUPDATE_DATE|CHILD_ELID|CHILD_ID_NUMBER|CHILD_REV|CHILD_STATE|CHILD_LASTUPDATE_DATE|TSITEM|QUANTITY_DMS|OPTION_NAME|"

但是,与模式匹配的第一行不会在输出文件中删除。我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-10 07:52:32

可以使用下面的sed命令从文件中删除模式

代码语言:javascript
复制
sed -i.bak "/$pattern/d" $FILE_NAME
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35910459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档