Questions tagged «sed»

sed是用于过滤和转换文本的命令行流编辑器。


8
将单独的行变成带引号的逗号分隔列表
我有以下数据(从Rmarkdown文件解析的R软件包列表),我想将其转换为可传递给R进行安装的列表: d3heatmap data.table ggplot2 htmltools htmlwidgets metricsgraphics networkD3 plotly reshape2 scales stringr 我想将列表变成表单列表: 'd3heatmap', 'data.table', 'ggplot2', 'htmltools', 'htmlwidgets', 'metricsgraphics', 'networkD3', 'plotly', 'reshape2', 'scales', 'stringr' 我目前有一个从原始文件到上面列表的bash管道: grep 'library(' Presentation.Rmd \ | grep -v '#' \ | cut -f2 -d\( \ | tr -d ')' \ | sort | uniq 我想添加一个步骤,将新行变成逗号分隔的列表。我尝试添加tr '\n' …
15 linux  sed  csv  tr 

4
如何将长sed表达式分成多行?
sed 's/[long1][long2]/[long3][long4]/' file.txt 我想将此命令拆分为多行-fx如下所示: sed 's/ [long1] [long2] / [long3] [long4] /' file.txt 使用\或分隔字符串无效。
15 sed 


4
如何使用sed检测行尾
我正在寻找一种仅在最后一个字符为换行符时执行替换的方法sed。 例如: lettersAtEndOfLine 被替换,但这不是: lettersWithCharacterAfter& 由于sed不适用于换行符,因此它不如简单 $ sed -E "s/[a-zA-Z]*\n/replace/" file.txt 如何做到这一点?


5
用定界符三重管道符号“ |||”逐行合并两个文件
我有两个并行文件,两种语言的行数相同,并计划使用定界符逐行合并这两个文件|||。例如,两个文件如下: 档案A: 1Mo 1,1 I love you. 1Mo 1,2 I like you. Hi 1,3 I am hungry. Hi 1,4 I am foolish. 档案B: 1Mo 1,1 Ich liebe dich. 1Mo 1,2 Ich mag dich. Hi 1,3 Ich habe Durst. Hi 1,4 Ich bin neu. 预期的输出是这样的: 1Mo 1,1 I love you. ||| …


5
删除重复的行,同时保持行的顺序
[root@server]# awk '!seen[$0]++' out.txt > cleaned awk: (FILENAME=out.txt FNR=8547098) fatal error: internal error Aborted [root@server]# ““服务器””具有:8 GB RAM + 16 GB SWAP,x> 300 GB可用空间,amd64,台式机CPU。科学Linux 6.6。没有其他东西可以使它加载。Awk在几秒钟后中止。out.txt为〜1.6 GB。GNU Awk 3.1.7。 问题:如何在保持行顺序的同时删除重复的行?大小写也很重要,例如:“ A”和“ a”是两个不同的行,必须保留它。但是“ a”和“ a”是重复的,只需要第一个。 答案可能在任何情况下..如果awk对此不利。.那么perl / sed ..可能是什么问题? [root@server]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, …

3
sed匹配模式N次
我想将文件拆分为每个2个单词的块。 $cat tmp word1 word2 word3 word4 word5 word6 word7 $sed -e 's/word. word. /&\n/g' tmp word1 word2 word3 word4 word5 word6 word7 $sed -e 's/word. \{2\}/&\n/g' tmp word1 word2 word3 word4 word5 word6 word7 我希望最后一个命令给出与之前相同的结果。怎么了?

5
用sed替换大小写匹配模式
我的源代码分布在多个文件中。 它具有abcdef我需要替换为的模式pqrstuvxyz。 模式可以是Abcdef(句子大小写),然后需要将其替换Pqrstuvxyz。 模式可以是AbCdEf(切换大小写),然后需要用替换PqRsTuVxYz。 简而言之,我需要匹配源模式的大小写并应用适当的目标模式。 如何使用sed或其他任何工具来实现此目的?

6
在两个括号之间打印字符串
我有这些行的文件 G8 = P(G1,G3) G9 = P(G3,G4) G12 = P(G2,G9) G15 = P(G9,G5) G16 = P(G8,G12) G17 = P(G12,G15) 我需要输出为 G1,G3 G3,G4 ..... 我该如何使用sed / grep命令或使用perl?
14 sed  grep  perl 

5
sed将4个空格转换为2
如何将4个空格转换为2个空格sed?可能吗? 我发现了这一点,但是它将制表符转换为空格: sed -r ':f; s|^(\t*)\s{4}|\1\t|g; t f' file
14 sed 

3
如何指示BSD sed解释\ n和\ t之类的转义序列?
我有一个sed替换命令,希望与BSD sed以及GNU 兼容sed。扩展正则表达式不是问题,因为在这种情况下,我不需要它们。我的主要问题是两个seds解释替换字符串中字符转义序列的方式不同。我的替换字符串包含制表符和换行符,并且我希望它们在命令字符串中可见以便于维护,但是BSD sed不会解释转义序列,而GNU sed 会解释。有什么合适的方法来指示sed在BSD上解释这些转义序列?以下两个片段概括了我的问题: GNU sed echo ABC | sed 's/B/\n\tB\n' 产量 A B C BSD sed echo ABC | sed 's/B\n\tB\n' 产量 AntBnC 显然,\n和\t不会被解释为通过BSD转义序列sed 现在,我的问题。根据BSD手册sed: 要在替换字符串中指定换行符,请在其前面加上反斜杠。 这是否意味着我需要在文字换行符之前加反斜杠?有什么合适的方法来指示sed解释\n替换文本中的转义序列?
14 sed  bsd 

4
sed:删除除第一个字符串外的所有出现的字符串
我有一个带有时间戳的日志文件。有时一行中有多个时间戳。现在,我想从一行中删除所有时间戳,但保留第一个。 我可以,s/pattern//2但是只能删除第二次出现,sed并且不允许类似的操作s/pattern//2-。 有什么建议么?
14 sed 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.