输入文件:
new file
myString
abc
myString
xyz
pattern
file txt
myString
almost the end of file
myString
end of file
输入文件包含整个文件中多次出现的myString,但我只需要替换在另一个模式pattern之后出现的第一个myString。
而且,在pattern和第一次出现myString之间没有特定的行数。
期望产出:
new file
myString
abc
myString
xyz
pattern
file txt
replacement_pattern
almost the e
因为这个问题可能会误导人,下面是一个小例子。我有这样的档案:
some text
some text @@some-text-KEY-some-other-text@@
text again @@some-text-KEY-some-other-text@@ @@some-text-KEY-some-other-text@@
again @@some-text-KEY-some-other-text-KEY-text@@
some text with KEY @@KEY-some-text@@
blabla @@KEY@@
在本例中,我希望将KEY-在一对@@中的每次出现替换为VALUE-。我
我有一个字符串“r1/pkg/amd64/misc/hash/hash-r1.r5218.tbz”,但我只需要"hash-r1.r5218.tbz“。
所以,我试了一下
unix$ a="r1/pkg/amd64/misc/hash/hash-r1.r5218.tbz"
unix$ echo $a | sed 's/.*\/\([^\/]*\)\.tbz/\1/' //[1]
hash-r1.r5218 //I know this should work
unix$ echo $a | sed 's/.*\/\([^\/]+\)\
我用谷歌搜索了很多次。我只想要这一行:
echo "Replace <newLine> it by <newLine> NEWLINE <newLine> in my OSX terminal <newLine> and bash script" | sed -e 's/<newLine>/\n/g'
在我的osx终端和我的bash脚本中工作。我不能用sed做这个吗?有没有另一种单行解决方案?
我试图用另一个分隔的拆分中的信息替换分隔拆分中的多次模式。
我的分隔符是管道,在本例中,我希望用第二列中的标签替换第三列中的每一个事件。
因此,如果我有一个包含内容的文件:
33|29|aa aa aa aa aa
28|12|aa aa aa aa aa
11|12|aa aa aa aa aa aa aa aa aa
9|9|aa aa aa aa
我想要的输出是:
33|29|29 29 29 29 29
28|12|12 12 12 12 12
11|12|12 12 12 12 12 12 12 12 12
9|9|9 9 9 9
我所想到的是使用sed和下面这样的反向引用:
sed
有没有办法用sed替换文件中字符串的第n次出现?
我使用sed -i '0,/jack.*/ s//jill/'替换第一次出现的情况。
我怎样才能改变它,使它取代第九次出现?
我的文件包含以下几行:
first line
second line
third line
jack=1
fifth line
jack=
seventh line
我不知道jack=之后的值,它可以是任何东西,也可以是什么。
我想用jill代替第二次出现的jill和它之后发生的任何事情。
我知道如何使用sed和[^xxxx]语法来排除字符,但是如何排除一个单词呢?例如,我的变量:
var="
Now is the time
for all good men
to come
to the aid
of the party"
现在:
echo $var | sed ...
..。最后我想:
REPLACED time
for all good men
to come
REPLACED aid
REPLACED party
..。这应该很简单,但我想不出怎么做。
echo $var | sed -r 's/^[^the]*the/REPLA
使用bash shell,在一个文件中包含如下行
first "line"
<second>line and so on
我希望用"line"\n<second>替换一次或多次出现的other characters,并获得每次:
first other characters line and so on
因此,我必须用特殊字符(如"和< )和换行符替换字符串。
在搜索完其他答案之后,我发现sed可以接受命令右侧的换行符(所以是other characters字符串),但不能接受左边的换行符。
是否有一种方法(比这更简单)可以
我有一个很长的文件,需要重新处理才能输入数据库。该文件的数据采用这种格式:
Error for: 111.222.55.1,[ZXX: Error message] some text (_xxx.c:833)
Error for: 198.243.55.25,[ZXX: Error message] some text (_xxx.c:833)
Unexpected error for: 198.245.175.52,[Errno 104] some text here
我需要重新安排文件如下:
Error for,111.222.55.1,[ZXX: Error message] some