我的文本文件如下所示:
If you are a software developer in your 20s or 30s, you've grown up in a world dominated by Linux. It has been a significant player in the data center for decades, and while it's hard to find definitive operating system market share reports, Linux's share of data center opera
我在写剧本
脚本的一个目标是在与foo匹配之后,递归地在多个文件中添加一个新的.yml代码线。
# Append new line after match in multiple files with sed
## sed -i -se "s/\foo/bar/g" *.yml
grep -rl foo * .| xargs sed -i -e "s/\foo/a bar/g" *.yml
在每次与foo匹配之后,I都期望,因为有了/a,在所有.yml文件中的新行上都会添加bar。
我得到了意外的 Sed输出:sed: can't read *.yml:
我试图删除遵循以下语法的Jira票证列表中的重复项:
XXXX-12345: a description
其中12345是一个类似于0-9+的模式,而XXXX是常数.例如,以下列表:
XXXX-1111: a description
XXXX-2222: another description
XXXX-1111: yet another description
应该像这样清理干净:
XXXX-1111: a description
XXXX-2222: another description
我一直在尝试使用sed,但是当我在Mac上工作的时候,它并没有在linux上使用。我认为使用awk会
我有一个文件,比如abc.txt,有以下数据(实际数据有很多记录,比如大约200个)
Sno | Name
1 | Jack
2 | Jill
3 | June
现在我如何附加文本使我的文件看起来像这样,
Sno | Name | Place
1 | Jack | Paris
2 | Jill | Paris
3 | June | Paris
我试着在全球范围内进行替换,但是第一行应该添加不同的text.So,请帮助我解决问题。
4在我的linux机器上(我检查了w/ sed --version)。
目前,我有一个具有以下内容的myfile.txt:
---
title: hello
author: Jan King
foo: bar
author: Jan King
---
我知道在GNU中,如果我在sed命令前面加上0,,可以在匹配的第一次出现后追加。
因此,如果我想在第一次出现goodbye之后插入---,我可以这样做:
sed -i '0,/---/a goodbye' myfile.txt
预期/正确结果:
---
goodbye
title: hello
author: Jan King
如何使用sed在模式之前和行号之后插入一行到文件中?如何在shell脚本中使用相同的脚本?
这会在具有模式的每一行之前插入一行:
sed '/Sysadmin/i \ Linux Scripting' filename.txt
这将使用行号范围来改变这一点:
sed '1,$ s/A/a/'
那么,现在如何使用这两者(我不能)使用sed在模式之前和行号之后或其他方法中插入一行到文件中呢?
我试图编写一个相当简洁的sed脚本,仅在文件的前两行为空时才删除它们,因此下面的文件如下:
> cat myfile.in
Line 3
Line 5
将产生一个三行输出文件:
> cat myfile.out
Line 3
Line 5
这涉及到合并行范围和模式匹配,我只是找不到任何这样的例子。如果有人能建议并同样(或更多)考虑Perl替代方案,我也会感到兴奋。非常感谢。
脚注
我应该补充一点,我尝试了1,2{/^$/d},它在Linux上工作得非常好,但是在AIX中我得到了:
sed: 0602-404 Function 1,2{/^$/d} cannot be par
期待在Linux主机上打印一个文件中的匹配行,从匹配的一行中打印出一行之前的一行。
下面只是日志文件中的内容:
[2020/02/18 08:25:21.229198, 1] ../source3/lib/smbldap.c:1206(get_cached_ldap_connect)
Connection to LDAP server failed for the 1 try!
[2020/02/18 08:25:21.229221, 2] ../source3/passdb/pdb_ldap_util.c:287(smbldap_search_domain_info)
smbld
示例
档案1:
This Dog
This Cat
This Duck
This Horse
档案2:
...
Animal Name
...
AniMal Type
...
AnIMal Class
...
animal Brand
...
我想做以下几点:
添加文件1的第一行(这只狗)刚好低于第一次出现的“动物”(忽略情况)
添加文件1第2行(此猫)刚好低于第二次出现的“动物”(忽略情况)
添加文件1第3行(这只鸭子)正好低于第三次出现的“动物”(忽略情况)
添加文件1第4行(这匹马)刚好低于第4次出现的“动物”(忽略情况)
..。
因此,一般来说,文件1的第n行应该添加在第n次出现
我有一个问题,如果有什么方法来检测行的末尾使用sed。Bcs,我需要连接两行,只有在行的末尾以减号结束时才需要连接,否则不行。
sed -e :a -e '/,$/N; s/-\n*/new_line/; ta' test.txt (that is only what i have and i need to substite new_line for actualy new line)
如果文件是这样的
Here is a random sente-
nc and if random sentec ended with minus it is better to concat
我有一个像这样的文件
line one
line two
line three
line four
我希望它看起来像这样(我希望第2行和第3行合并成一个)
line one
line two line three
line four
我尝试了以下几点:根据我的研究,我应该做我想做的事情:
$ sed '2s/\n/ /' test.txt > test2.txt
然而,test2.txt看起来是这样的
line one
line two
line three
line four
我在Solaris上看到了一些与Linux不同的引用。这是我服务器的详细信息
$ uname
嗨,到目前为止,我正在尝试使用sed将文本添加到文件的第一行
#!/bin/bash
touch test
sed -i -e '1i/etc/example/live/example.com/fullchain.pem;\' test
而且这个剂量也不起作用
#!/bin/bash
touch test
sed -i "1i ssl_certificate /etc/example/live/example.com/fullchain.pem;" test
当我尝试的时候,这个剂量似乎也不奇怪。
#!/bin/bash
touch test
echo "
我发现了几个相关的问题,但这些问题都不符合我的需要,因为我是一个真正的初学者,我无法理解它。
我有一个文本文件,其中有这样的条目,用空行分隔:
example entry &with/ special characters
next line (any characters)
next %*entry
more words
我希望输出合并行,在中间放置逗号,并删除空行。也就是说,这个例子应该如下所示:
example entry &with/ special characters, next line (any characters)
next %*entry, more w
我的输入看起来是:
Line 1\n
More Line 1\r\n
Line 2\n
More Line 2\r\n
我想生产
Line 1 More Line 1\r\n
Line 2 More Line 2\r\n
使用sed或tr。我试过以下几种方法,但不起作用:
sed -e 's/([^\r])\n/ /g' in_file > out_file
out_file看起来仍然像in_file。我还可以选择编写python脚本。
我正在接收一个管道分隔格式的消息传递文件。一条消息行非常长,几乎有6000条。总文件大小超过6gb。下面是文件的示例格式。需要解析文件并将所有内容都放在一行中。
我需要从数据中间删除新的行字符:
File: abc.txt
File_Name|abc.txt|date|04212019|this is one full line|Client_name|Whole
File_Name|abc.txt|date|04212019|half data is good
File_Name|abc.txt|date|04212019|Sample data
is split|Client_Name|M
下面是一个脚本,在删除“word”之后,打印“word”所在的整行的文本,并选择所有出现的“word”:
sed -ne 's/word//p' file.txt >> newfile.txt
如何在“word”第一次出现后仅打印行的文本,并删除打印行的“word”?
我在用OSX。
下面是一个示例文本:
Blalala
'Omfoem From
balanf
word I want this output
word Not this output
Omfoem527
下面是我期望的输出:
I want this output
更新:这是我拥
这里有一个非常简单的文本文件,包含以下内容
line1
line2
line3
line4
我想通过sed(或其他应用程序)修改内容,这样它就变成了
line1
line2
#this line was added by sed
line3
line4
所以我尝试了sed -e "s/line2/line2\\n#this line was added by sed/" my-text-file-here.txt,但是输出是:
line1
line2\n#this line was added by sed
line3
line4
对如何正确地做这件事有什么想法吗?谢谢