linux 下用shell sed替换文本中的字符串

txt文本中有这样的内容:"Hour\n", 也就是Hour字符串后面有一个换行符,我想把这个换行符删除掉,但是文件中许多不能删除掉的\n,所以我就想用 sed 's/Hour\n/Hour/g' file 把它替换成"Hour",但是没有成功,请问这样做有什么问题?应该怎么做?谢谢!!

第1个回答  2013-04-16
sed是行编辑器,用这个工具非常困难。可以参考以下脚本:

#!/bin/bash
while read line
do
if echo $line | grep 'Hour$' >/dev/null; then
echo $line | tr -d '\n'
else
echo $line
fi
done < $1

1,将上面脚本保存为fuck.sh
2,chmod 755 fuck.sh
3,./fuck.sh file
第2个回答  2013-04-17
sed 's/Hour\\n/Hour/' tt.txt
在前面\n加个转义字符\就可以了,这样比较好理解
第3个回答  2013-04-16
sed 'N;s/Hour\n/Hour/' tt.txt本回答被提问者采纳

Linux下的shell编程 如何替换文件中的内容
方法1:sed -i 's\/被替换的内容\/要替换成的内容\/' file 方法2:sed 's\/被替换的内容\/要替换成的内容\/g' file > file.out;mv file.out file。

shell中文件字符串替换
答案:在Shell中,可以使用`sed`命令进行文件字符串替换。具体语法为:`sed -i 's\/原字符串\/新字符串\/g' 文件名`。详细解释:1. sed命令简介 `sed`是一个流编辑器,用于对文本文件进行非交互式处理。它可以对文件内容进行搜索、替换、删除、插入等操作。2. 字符串替换语法 `sed`命令中的替换语...

Linux高效文本编辑工具sed之文本替换
sed '[address-range|pattern-range] s\/original-string\/replacement-string\/[substitute-flags]' inputfile 数据说明 以下为使用的示例文本数据,这里的行号是为了方便解释结果,并不是文本内容。2. S命令 S命令即删除行(substitude),是对sed的输出流中的数据进行替换,而不是直接作用到文件本身。替换...

Linux高效文本编辑工具sed之文本替换
其基本格式如下:`sed '[address-range|pattern-range] s\/original-string\/replacement-string\/[substitute-flags]' inputfile`。在实际操作中,我们可以用它进行文本内容的局部替换、关键字替换(仅首次匹配或全局替换)、指定重复出现位置的替换、结合其他选项如打印或写入文件,甚至与正则表达式结合使用,...

linux下perl,sed,shell批量替换文件内容
Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。用sed命令可以批量替换多个文件中的 字符串。sed -i "s\/原字符串\/新字符串\/g" `grep 原字符串 -rl 所在目录`例如:我要把mahuinan替换 为huinanma,执行命令:sed -i "s\/mahuinan\/hui...

shell 中文件字符串替换
在Shell编程中,字符串替换操作可以通过一些特定的命令和技巧实现。例如,下面是一个脚本片段,它使用`grep`和临时文件来查找并替换文件中的'desc'字符串。首先,创建一个临时文件`tmp_desc`(通过`mktemp`命令),然后从输入文件中逐行读取,如果找到'desc',则使用`sed`替换并记录当前行号,否则直接输出...

Linux字符串替换命令linux字符串替换
可以通过Shell脚本替换字符串方式,如果知道第几行,格式如下:stringid="str_ig_ghjjk">hello\/string>字符串内容可能是任意字符串,如何把>和中间的字符串替换为我的字符串比如world具体例子:比如要替换第128行sed-i'128s\/>.*\/>world\/'test.txt这样子 Linux上如何进行换行符转换?在Linux中,文本...

shell常用命令之sed命令
sed命令是Linux中强大的文本处理工具,它主要用于在文件中替换、删除或打印指定的文本。命令的基本格式为"sed -i 's\/旧字符串\/新字符串\/g' 文件名"。这里的-i参数表示修改文件内容,g参数表示全局替换,若不使用g,则只替换每行首次出现的字符串。sed还提供了删除指定行的功能,格式为"sed ‘开始...

如何用shell去除文本中的特殊字符
1)、首先在vi命令模式下:set list可以将不可看见的特殊字符打印出来 2)、这些不可见的特殊字符是可以输入的方式如下 比如^I是Tab(\\t),^M是WIN的换行(\\n\\r)请注意^I 不是^ I, ^M也不是^ M ^I 是Ctrl + V Ctrl + I ^M 是Ctrl + V Ctrl + M 3)、然后用sed -i 's\/^M\/\/g'...

shell如何取出特定文本内容并替换另一个文本中的指定内容???
1、按=分割取第二列 cat $file1|grep mqserver|awk -F= '{print $2}'`2、直接替换文件内容 sed -i "s\/127.0.0.1\/192.168.1.1\/" file1 3、实例:!\/bin\/sh file1=ip1.txt file2=ip2.txt IP1=`cat $file1|grep mqserver|awk -F= '{print $2}'`IP2=`cat $file2|grep...

相似回答