我在Linux命令行,我有文件
127.0.0.1
128.0.0.0
121.121.33.111
Run Code Online (Sandbox Code Playgroud)
我想要
127.0.0.1:80
128.0.0.0:80
121.121.33.111:80
Run Code Online (Sandbox Code Playgroud)
我记得我的同事们正在使用sed,但在阅读sed手册后仍然不清楚如何在命令行上执行此操作?
我需要对文件夹(及其子文件夹)中的所有文件进行正则表达式查找和替换.linux shell命令会做什么?
例如,我想在所有文件上运行它,并使用新的替换文本覆盖旧文件.
sed 's/old text/new text/g'
Run Code Online (Sandbox Code Playgroud) 我有多行以下数据:
foo
bar
qux
zuu
sdf
sdfasdf
Run Code Online (Sandbox Code Playgroud)
我想要做的是用一行和逗号分隔它们:
foo,bar,qux,zuu,sdf,sdfasdf
Run Code Online (Sandbox Code Playgroud)
什么是最好的unix单线程呢?
我有两个文件:
档案1
dsf
sdfsd
dsfsdf
Run Code Online (Sandbox Code Playgroud)
档案2
ljljlj
lkklk
dsf
sdfsd
dsfsdf
Run Code Online (Sandbox Code Playgroud)
我想显示文件2中的内容,但不显示文件1中的内容,因此文件3应该如下所示
ljljlj
lkklk
Run Code Online (Sandbox Code Playgroud) 我对sed中的两个概念感到困惑:持有空间和模式空间.有人可以帮忙解释一下吗?
这是手册的片段:
Run Code Online (Sandbox Code Playgroud)h H Copy/append pattern space to hold space. g G Copy/append hold space to pattern space. n N Read/append the next line of input into the pattern space.
这六个命令真让我迷惑.
目的
更改这些文件名:
这些文件名:
壳牌代码
去测试:
ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/'
Run Code Online (Sandbox Code Playgroud)
去表演:
ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' | sh
Run Code Online (Sandbox Code Playgroud)
我的问题
我不明白sed代码.我理解替换命令是什么
$ sed 's/something/mv'
Run Code Online (Sandbox Code Playgroud)
手段.我有点理解正则表达式.但我不明白这里发生了什么:
\(.\).\(.*\)
Run Code Online (Sandbox Code Playgroud)
或者在这里:
& \1\2/
Run Code Online (Sandbox Code Playgroud)
对我来说,前者看起来就像是:"一个角色,后跟一个角色,然后是单个角色的任何长度序列" - 但肯定还有更多的东西.至于后一部分:
& \1\2/
Run Code Online (Sandbox Code Playgroud)
我不知道.我真的很想了解这段代码.伙计们,请帮帮我.
我正在尝试使用SED从日志文件中提取文本.
我可以毫不费力地进行搜索和替换:
sed 's/foo/bar/' mylog.txt
Run Code Online (Sandbox Code Playgroud)
但是,我想使搜索不区分大小写.从我用Google搜索的内容看起来,附加i到命令的末尾应该可以正常工作:
sed 's/foo/bar/i' mylog.txt
Run Code Online (Sandbox Code Playgroud)
但是,这给了我一个错误消息:
sed: 1: "s/foo/bar/i": bad flag in substitute command: 'i'
Run Code Online (Sandbox Code Playgroud)
这里出了什么问题,我该如何解决?
我在macOS上,万一重要.
我需要编辑大量文件,方法是在唯一模式正下方或其上方插入(2)行.请告诉如何使用sed,awk,perl或shell中的任何其他内容.谢谢
some text
lorem ipsum dolor sit amet
more text
Run Code Online (Sandbox Code Playgroud)
我想在'你好我的爱,你是个肮脏的女孩'之后插入'我知道,我是,我的性感骑士',所以输出文件看起来像
some text
lorem ipsum dolor sit amet
consectetur adipiscing elit
more text
Run Code Online (Sandbox Code Playgroud) 我有一个由几行文本组成的文件:
The first line
The second line
The third line
The fourth line
Run Code Online (Sandbox Code Playgroud)
我有一个字符串是其中一行: The second line
我要删除字符串,并在文件中后,所有行,因此它会删除The third line,并The fourth line在除了字符串.该文件将成为:
The first line
Run Code Online (Sandbox Code Playgroud)
我在谷歌搜索了一个解决方案,似乎我应该使用sed.就像是:
sed 'linenum,$d' file
Run Code Online (Sandbox Code Playgroud)
但是如何找到字符串的行号?或者,我该怎么做呢?
这应该很简单:我想对文字字符串运行sed,而不是输入文件.如果你想知道为什么,那就是,例如编辑存储在变量中的值,而不是文本数据.
当我做:
sed 's/,/','/g' "A,B,C"
Run Code Online (Sandbox Code Playgroud)
其中A,B,C是我想要改为A','B','C的文字
我明白了
Can't open A,B,C
Run Code Online (Sandbox Code Playgroud)
好像它认为A,B,C是一个文件.
我试着用它来回声:
echo "A,B,C" | sed 's/,/','/g'
Run Code Online (Sandbox Code Playgroud)
我得到一个提示.
做正确的方法是什么?