Questions tagged «sed»

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

3
为什么`sed expr1 | sed expr2`与sed -e expr1 -e expr2不同
我将输出从中分离出来,id以提供一个更具可读性的按行列出的用户所属的组列表: id roaima | sed 's/,/\n\t/g' uid=1001(roaima) gid=1001(roaima) groups=1001(roaima) 24(cdrom) 25(floppy) ... 822413650 (international (uk) location) 我想将组号与其方括号中的名称分开,所以我像这样扩展了表达式 id roaima | sed -e 's/,/\n\t/g' -e '2,$s/(/ (/' 但是,这并没有达到我最初的预期。第二个表达式似乎没有作用。 相反,要获得所需的结果,我需要运行两个单独的sed命令,如下所示: id roaima | sed -e 's/,/\n\t/g' | sed '2,$s/(/ (/' uid=1001(roaima) gid=1001(roaima) groups=1001(roaima) 24 (cdrom) 25 (floppy) ... 822413650 (international (uk) location) …
10 sed  group 

2
如何使用sed保持彩色输出
我正在使用该sed命令,并且希望保留前一个命令的彩色输出。的输出ls是彩色的,但sed的输出不是。我正在使用OSX。 ls -la | sed -En '/Desktop/q;p'
10 sed  osx  pipe  ls  colors 

2
您能在这段bash代码中为我解释这三件事吗?
我有一个function在我的.bashrc文件。我知道它的作用,它可以增加X个目录cd 这里是: up() { local d="" limit=$1 for ((i=1 ; i <= limit ; i++)) do d=$d/.. done d=$(echo $d | sed 's/^\///') if [ -z "$d" ]; then d=.. fi cd $d } 但是您能为我解释这三件事吗? d=$d/.. sed 's/^\///' d=.. 为什么不这样做: up() { limit=$1 for ((i=1 ; i <= limit ; …

5
awk / sed / perl一线+如何仅打印json文件中的属性行
如何仅打印json文件中的属性行 json文件的示例 { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "items" : [ { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "tag" : "version1527250007610", "type" : "kafka-env", "version" : 8, "Config" : { "cluster_name" : "HDP", "stack_id" : "HDP-2.6" }, "properties" : { "content" : "\n#!/bin/bash\n\n# Set KAFKA specific environment variables here.\n\n# The java implementation to use.\nexport JAVA_HOME={{java64_home}}\nexport …
10 awk  sed  perl  json  jq 

1
sed -e'$!d'无法正常工作?
当我跑步时: sudo /usr/local/nginx/sbin/nginx -t 我回来了: nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful 我只想要最后一行,所以我运行: sudo /usr/local/nginx/sbin/nginx -t | sed -e '$!d' 但是我和没有sed的感觉一样。

5
实现扩展的正则表达式以根据字符串中的位置添加可变数量的前导零
我在将sed语法降低到将不同数量的前导零添加到数字组织方案时遇到麻烦。我正在操作的字符串看起来像 1.1.1.1,Some Text Here 利用sed语法 sed -r ":r;s/\b[0-9]{1,$((1))}\b/0&/g;tr" 我能够引起回应 01.01.01.01,Some Text Here 但是,我要寻找的东西是将字段2和3中的2位数字零填充,并将字段4中的3位数字零填充,以使所有项目的标准长度为[0-9]。[0-9] { 2}。[0-9] {2}。[0-9] {3} 1.01.01.001,Some Text Here 为了我的一生,我什至无法想像如何修改边界以包括必要的参数,以便仅在一个句点之后捕捉到数字。我认为这与\ b的使用有关,我理解\ b在单词边界匹配零个字符,但是我不明白为什么我为匹配添加句点的尝试失败如下: sed -r ":r;s/\.\b[0-9]{1,$((1))}\b/0&/g;tr" sed -r ":r;s/\b\.[0-9]{1,$((1))}\b/0&/g;tr" Both cause the statement to hang sed -r ":r;s/\b[0-9]\.{1,$((1))}\b/0&/g;tr" sed -r ":r;s/\b[0-9]{1,$((1))}\.\b/0&/g;tr" sed -r ":r;s/\b[0-9]{1,$((1))}\b\./0&/g;tr" cause the statement to output: 1.01.01.1,Some …

5
如何编辑文件中的最后n行?
有没有可以让我编辑文件中最后n行的命令?我有几个文件,里面都有不同数量的行。但是我想修改每个文件的最后n行。目标是在最后n行中用分号替换逗号。但仅在最后n行中。 我不想删除任何行,我只想在每个文件的最后n行中用分号替换每个逗号。 使用sed命令,我可以用此命令替换最后一行。如此处所述: 如何删除文件最后一行的文本? 但这仅使我能够修改最后一行,而不是最后n行。

8
如果一行仅包含一个字符,如何删除行
我只想从包含特定字符的文件中删除一行,如果该行存在多次或不存在,则将该行保留在文件中。 例如: DTHGTY FGTHDC HYTRHD HTCCYD JUTDYC 在这里,我要删除的字符是C这样,命令应该删除行FGTHDC,JUTDYC因为它们C恰好有一次。 如何使用sed或来做到这一点awk?

5
用逗号替换下划线并删除CSV中的双引号
我有一个CSV文件 input.csv "1_1_0_0_76" "1_1_0_0_77" "1_1_0_0_78" "1_1_0_0_79" "1_1_0_0_80" "1_1_0_0_81" "1_1_0_0_82" "1_1_0_0_83" "1_1_0_0_84" "1_1_0_0_85" ............. 等等。 我需要将此CSV文件转换为 result.csv 1,1,0,0,76 1,1,0,0,77 1,1,0,0,78 1,1,0,0,79 1,1,0,0,80 1,1,0,0,81 1,1,0,0,82 1,1,0,0,83 1,1,0,0,84 1,1,0,0,85

6
如何用其他格式替换文件中的纪元时间戳?
我有一个包含纪元日期的文件,我需要将其转换为人类可读的文件。我已经知道如何进行日期转换,例如: [server01 ~]$ date -d@1472200700 Fri 26 Aug 09:38:20 BST 2016 ..但是我正在努力弄清楚如何sed遍历文件并转换所有条目。文件格式如下: #1472047795 ll /data/holding/email #1472047906 cat /etc/rsyslog.conf #1472048038 ll /data/holding/web

9
将行转换为列
我有一个文件,其中包含有关在管理程序中运行的VM的详细信息。我们运行一些命令并将输出重定向到文件。并且是以下格式的可用数据。 Virtual Machine : OL6U5 ID : 0004fb00000600003da8ce6948c441bb Status : Running Memory : 65536 Uptime : 17835 Minutes Server : MyOVS1.vmorld.com Pool : HA-POOL HA Mode: false VCPU : 16 Type : Xen PVM OS : Oracle Linux 6 Virtual Machine : OL6U6 ID : 0004fb00000600003da8ce6948c441bc Status : Running Memory …

2
删除行尾的逗号
如何删除bash中的一组尾随逗号: a,b,c,d,,,, 1,2,3,,,, 所需输出: a,b,c,d 1,2,3 尝试这样做: grep "5628" test.csv | sed 's/,*$//g' 但这不起作用。该文件最初来自Windows计算机。
10 sed 

6
如何仅替换文件中第N个出现的模式?
如何使用sed命令替换文件中字符串的第三次出现。 例: 仅更改的第三次出现is到us的文件中。 我的输入文件包含: hai this is linux. hai this is unix. hai this is mac. hai this is unchanged. 我期望输出是: hai this is linux. hai thus is unix. hai this is mac. hai this is unchanged.

5
从文本文件中删除反斜杠
我有 输入: NISHA =\455 输出: NISHA = 455 我想\从输出中删除。我试图使用命令,sed "s/[\]//g" P但是它不起作用,并且它会标记错误: character found after backslash is not meaningful

3
如何删除多行文本文件中大括号之间的所有文本?
例: This is { the multiline text file } that wants { to be changed } anyway. 应成为: This is that wants anyway. 我在论坛中找到了一些类似的 主题,但是它们似乎不适用于多行大括号。 如果可能的话,我更喜欢一些单行方法,例如基于grep,sed,awk等的解决方案。 编辑:解决方案似乎还可以,但是我注意到我的原始文件包括大括号嵌套。因此,我要提出一个新问题。谢谢大家:如何删除多行文本文件中嵌套大括号之间的所有文本?

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.