哇,这个真的有我.我想在这里需要一些棘手的sed技能.这是我试图替换的命令文本的输出值:
...
fast
n : abstaining from food
Run Code Online (Sandbox Code Playgroud)
我想要替换它的价值是:
...
Noun
: abstaining from food
Run Code Online (Sandbox Code Playgroud)
事实证明这是我认为的诡计.因为'fast'被列出了很多次,因为它列在行的开头的其他地方.所以我想出了这个来定义范围:
sed '/fast/,/^ n : / s/fast/Noun/'
Run Code Online (Sandbox Code Playgroud)
我认为会这样做,但是......不幸的是,这并没有结束替换,这场比赛后的其余输出被Noun取代.比赛结束后如何让sed停止更换?更好的是,我可以找到两行模式匹配并替换它吗?
I have an input C file (myfile.c) that looks like this :
void func_foo();
void func_bar();
//supercrazytag
Run Code Online (Sandbox Code Playgroud)
I want to use a shell command to insert new function prototypes, such that the output becomes:
void func_foo();
void func_bar();
void func_new();
//supercrazytag
Run Code Online (Sandbox Code Playgroud)
So far I've been unsuccessful using SED or PERL. What didn't work:
sed 's|\n\n//supercrazytag|void func_new();\n\n//supercrazytag|g' < myfile.c
sed 's|(\n\n//supercrazytag)|void func_new();\1|g' < myfile.c
Run Code Online (Sandbox Code Playgroud)
Using the same patterns with perl -pe "....." didn't work either.
What am I missing ? I've …
我有一个包含多个\ n实例的文件。
我想用实际的换行符替换它们,但是sed无法识别\ n。
我试过了
sed -r -e 's/\n/\n/'
sed -r -e 's/\\n/\n/'
sed -r -e 's/[\n]/\n/'
Run Code Online (Sandbox Code Playgroud)
以及其他多种转义方式。
sed是否能够识别文字\ n?如果是这样,怎么办?
是否有另一个程序可以读取将\ n解释为真实换行符的文件?
我看到了这一点:如何使用sed替换换行符(\ n)?,并认为我会尝试用tr
替换换行符',
。
该文件如下所示:
something
newline
newline again
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样:
something',
newline',
newline again',
Run Code Online (Sandbox Code Playgroud)
所以,我尝试了这些:
tr "\n" "'," < myfileabove
tr "\n" "\'," < myfileabove
他们俩都没有我想要的...。我做错什么了吗?
文件包含表示十六进制值的 ASCII 字符。(每行以“,”结尾)
cat temp.txt
0x6A,
0xF2,
0x44,
.....
0xF8,
0x1A,
Run Code Online (Sandbox Code Playgroud)
我尝试将每 16 个单词/行组合成这样的一行
cat hex_result.txt
0x6A, 0xF2, 0x44, 0xF8, 0x45, 0x41, 0x88, 0xD1,0x4E, 0x8B, 0xA3, 0xB1, 0x8C, 0xE0, 0x37, 0x2D,
....
0xE2, 0x1C, 0x06, 0x8A, 0x75, 0x2B, 0xBC, 0x3C, 0xC5, 0x08, 0xB7, 0x4E, 0xB0, 0xE4, 0xF8, 0x1A,
Run Code Online (Sandbox Code Playgroud)
是否有任何 bash 命令来完成它?
C:\crp\cnp>sed -V
GNU sed version 3.02
Copyright (C) 1998 Free Software Foundation, Inc.......
C:\crp\cnp>type f.f
a a a
a a a
Run Code Online (Sandbox Code Playgroud)
试图用空格替换'a'.
C:\crp\cnp>type f.f | sed -e s/a/\d032/g
d032 d032 d032
d032 d032 d032
Run Code Online (Sandbox Code Playgroud)
为什么不工作?
我不介意我是在寻找还是替换空格或换行......我只是希望能够指定它们.它似乎没有工作,我不知道为什么.
(用f替换空格或空格不起作用)
C:\crp\cnp>echo a a | sed s/\d32/f/
a a
Run Code Online (Sandbox Code Playgroud)
注意 - 似乎它可能在4.2中工作,但我对3.02'cos感兴趣,这是与unxutils捆绑在一起的版本http://unxutils.sourceforge.net/
更新问题 - 感谢paxdiablo的提示......关于gnu32win,我现在正在使用它而不是unxutils.它更新了.我现在可以指定空格.和鬼狗的小费,以及paxdiablo,我看到双引号.我很好用\ d(因为使用4.2)或空格指定空格.但是,我仍然无法删除新行
C:\ crp>输入ff | sed -e"s /\r \n/f/g"
aa
b bb
c cc
C:\ crp>输入ff | sed -e"s /\d013\d010/f/g"
aa
b bb
c cc
C:\ crp>输入ff | sed …
我有一些文本文件,其中每个文件将有如下信息
235.91 245.67 B: some information here
246.79 246.99 A: some other information here,
more information here,
and may be here
247.45 248.99 A: some other text here,
some more here
249.98 ----
Run Code Online (Sandbox Code Playgroud)
并且模式重复
我希望文本安排如下:
235.91 245.67 B: some information here
246.79 246.99 A: some other information here, more information here, and may be here
247.45 248.99 A: some other text here. some more here
249.98 -----
Run Code Online (Sandbox Code Playgroud)
这意味着我想合并两个匹配模式之间的所有行(它们之间有空格)
我希望每一行都以数字作为模式开始.数字始终有一个小数点,小数点后有两位数.图案与下一个图案之间的线数不同(可以有一条或多条线或根本没有线).
有人可以使用shell脚本帮助我这样做,最好使用awk吗?
我的文件内容:
Google
Facebook
yahoo
cisco
juniper
oracle
firetide
attack
Run Code Online (Sandbox Code Playgroud)
我想将上面的单词(列)转换成一行,如下所示:
Google Facebook yahoo cisco juniper oracle firetide attack
Run Code Online (Sandbox Code Playgroud)
注意:每个单词之间应该有一个空格.
请建议我使用sed或awk实现此目的的方法.
提前致谢.
我有一个像这样的文件:
A
B
C
D
E
F
G
H
I
J
K
L
Run Code Online (Sandbox Code Playgroud)
我希望它能像它一样出现
A,B,C,D
E,F,G,H
Run Code Online (Sandbox Code Playgroud)
我假设我会使用sed
,但实际上我甚至不确定这是否是最好的工具.我愿意使用Linux系统上常用的任何东西.
在perl
,我这样做了......它有效,但它很脏,有一个尾随的逗号.希望更简单的事情:
$ perl -ne 'if (/^(\w)\R/) {print "$1,";} else {print "\n";}' test
A,B,C,D,
E,F,G,H,
I,J,K,L,
Run Code Online (Sandbox Code Playgroud) 我找到了几个相关的问题,但它们都不符合我的要求,因为我是一个真正的初学者,我无法弄明白.
我有一个包含这样的条目的文本文件,用空行分隔:
example entry &with/ special characters
next line (any characters)
next %*entry
more words
Run Code Online (Sandbox Code Playgroud)
我想输出合并行,在逗号之间插入逗号,并删除空行.即,示例应如下所示:
example entry &with/ special characters, next line (any characters)
next %*entry, more words
Run Code Online (Sandbox Code Playgroud)
我更喜欢sed,因为我知道它有点,但我也对linux命令行上的任何其他解决方案感到高兴.
如果sample.txt有以下数据
Employee_id 101
Dept_id 10
Salary 2000
Employee_id 102
Dept_id 20
Salary 3000
Employee_id 103
Dept_id 30
Salary 3000
Run Code Online (Sandbox Code Playgroud)
我想看到输出如下
Employee_id 101 Dept_id 10 Salary 2000
Employee_id 102 Dept_id 20 Salary 3000
Employee_id 103 Dept_id 30 Salary 3000
Run Code Online (Sandbox Code Playgroud) 我有如下文件的txt文件.
abc
def
ghi
123
456
789
Run Code Online (Sandbox Code Playgroud)
预期产量是
abc|def|ghi
123|456|789
Run Code Online (Sandbox Code Playgroud)
我想用管道符号(|)替换新行.我想在egrep.After空行后使用它应该开始其他新行.