Bash 从持续时间格式时间中删除连字符
我需要从duration format time中删除连字符,但sed命令并没有按我的预期成功 原始输出:Bash 从持续时间格式时间中删除连字符,bash,sed,Bash,Sed,我需要从duration format time中删除连字符,但sed命令并没有按我的预期成功 原始输出: 00:0-26:0-8 00:0-28:0-30 00:0-28:0-4 00:0-28:0-28 00:0-27:0-54 00:0-27:0-19 00:26:08 00:28:30 00:28:04 00:28:28 00:27:54 00:27:19 预期输出: 00:0-26:0-8 00:0-28:0-30 00:0-28:0-4 00:0-28:0-28 00:0-27:
00:0-26:0-8
00:0-28:0-30
00:0-28:0-4
00:0-28:0-28
00:0-27:0-54
00:0-27:0-19
00:26:08
00:28:30
00:28:04
00:28:28
00:27:54
00:27:19
预期输出:
00:0-26:0-8
00:0-28:0-30
00:0-28:0-4
00:0-28:0-28
00:0-27:0-54
00:0-27:0-19
00:26:08
00:28:30
00:28:04
00:28:28
00:27:54
00:27:19
我试着指挥,但我被绊倒了
sed 's/;/ /g' temp_file.txt | awk '{print $8}' | grep - | sed 's/-//g;s/00:0/0:/g'
仅在显示的示例中,以下
awk
可能会对您有所帮助
awk -F":" '{for(i=1;i<=NF;i++){sub(/0-/,"",$i);$i=length($i)==1?0$i:$i}} 1' OFS=":" Input_file
awk-F:“{for(i=1;i仅针对您显示的样本,以下awk
可能会对您有所帮助
awk -F":" '{for(i=1;i<=NF;i++){sub(/0-/,"",$i);$i=length($i)==1?0$i:$i}} 1' OFS=":" Input_file
awk-F:“{for(i=1;i对于给定的示例,此一行程序执行以下任务:
awk -F':0-' '{printf "%02d:%02d:%02d\n",$1,$2,$3}' file
对于给定的示例,此一行程序执行以下任务:
awk -F':0-' '{printf "%02d:%02d:%02d\n",$1,$2,$3}' file
使用sed
:
sed 's/\<[0-9]\>/0&/g;s/:00-/:/g' file
sed's/\/0&/g;s/:00-/:/g'文件
第一个命令s/\/0&/g
将零添加到一位数
第二个命令s/:00-/:/g
删除数字前面的0-
。使用sed
:
sed 's/\<[0-9]\>/0&/g;s/:00-/:/g' file
sed's/\/0&/g;s/:00-/:/g'文件
第一个命令s/\/0&/g
将零添加到一位数
第二个命令s/:00-/:/g
正在删除数字前面的0-
。如果下面的输出有两列“持续时间”?当我尝试使用上面的一个regexp时,会将我添加为“0”对于第一列duration time/timestamp,我不希望这样,只需修改$7=duration\u time列,该列由;分隔
01;12May2018 8:20:36;192.168.1.111;78787;192.168.1.111;78787;80:25:0-49;2018-05-12_111111;RO
02;14May2018 2:43:16;192.168.1.132;78787;192.168.1.111;78787;36:10:0-10;2018-05-12_111111;RO
03;15May2018 7:40:01;192.168.131.1;78787;192.168.1.111;78787;18:39:0-44;2018-05-12_111111;RO
04;15May2018 12:37:46;192.168.1.201;78787;192.168.1.111;78787;12:51:0-14;2018-05-12_111111;RO
以下是输出:
root@root> sed 's/\<[0-9]\>/0&/g;s/:00-/:/g' temp_file
01;12May2018 08:20:36;192.168.01.111;78787;192.168.01.111;78787;80:25:49;2018-05-12_111111;RO
02;14May2018 02:43:16;192.168.01.132;78787;192.168.01.111;78787;36:10:10;2018-05-12_111111;RO
03;15May2018 07:40:01;192.168.131.01;78787;192.168.01.111;78787;18:39:44;2018-05-12_111111;RO
04;15May2018 12:37:46;192.168.01.201;78787;192.168.01.111;78787;12:51:14;2018-05-12_111111;RO
root@root>sed's/\/0&/g;s/:00-/:/g'temp\u文件
2018年5月12日08:20:36;192.168.01.111;78787;192.168.01.111;78787;80:25:49;2018-05-12_111111;RO
2018年5月14日02:43:16;192.168.01.132;78787;192.168.01.111;78787;36:10:10;2018-05-12_111111;RO
2018年5月15日07:40:01;192.168.131.01;78787;192.168.01.111;78787;18:39:44;2018-05-12_111111;RO
2018年5月15日12:37:46;192.168.01.201;78787;192.168.01.111;78787;12:51:14;2018-05-12_111111;RO
如果我有两列“duration time”(持续时间)的以下输出?当我尝试使用上面的一个regexp时,在第一列duration time/timestamp(持续时间/时间戳)中添加我“0”,我不希望这样,只需修改由分隔的$7=duration_time(持续时间)列
01;12May2018 8:20:36;192.168.1.111;78787;192.168.1.111;78787;80:25:0-49;2018-05-12_111111;RO
02;14May2018 2:43:16;192.168.1.132;78787;192.168.1.111;78787;36:10:0-10;2018-05-12_111111;RO
03;15May2018 7:40:01;192.168.131.1;78787;192.168.1.111;78787;18:39:0-44;2018-05-12_111111;RO
04;15May2018 12:37:46;192.168.1.201;78787;192.168.1.111;78787;12:51:0-14;2018-05-12_111111;RO
以下是输出:
root@root> sed 's/\<[0-9]\>/0&/g;s/:00-/:/g' temp_file
01;12May2018 08:20:36;192.168.01.111;78787;192.168.01.111;78787;80:25:49;2018-05-12_111111;RO
02;14May2018 02:43:16;192.168.01.132;78787;192.168.01.111;78787;36:10:10;2018-05-12_111111;RO
03;15May2018 07:40:01;192.168.131.01;78787;192.168.01.111;78787;18:39:44;2018-05-12_111111;RO
04;15May2018 12:37:46;192.168.01.201;78787;192.168.01.111;78787;12:51:14;2018-05-12_111111;RO
root@root>sed's/\/0&/g;s/:00-/:/g'temp\u文件
2018年5月12日08:20:36;192.168.01.111;78787;192.168.01.111;78787;80:25:49;2018-05-12_111111;RO
2018年5月14日02:43:16;192.168.01.132;78787;192.168.01.111;78787;36:10:10;2018-05-12_111111;RO
2018年5月15日07:40:01;192.168.131.01;78787;192.168.01.111;78787;18:39:44;2018-05-12_111111;RO
2018年5月15日12:37:46;192.168.01.201;78787;192.168.01.111;78787;12:51:14;2018-05-12_111111;RO
如果您发布初始temp_file.txt
片段会更好。我认为您当前的管道可以显著优化如果您发布初始temp_file.txt
片段会更好。我认为您当前的管道可以显著优化optimized@Slashlinux,很高兴它帮助了你,请看l还有ink如果有人在SO cheers上帮助你该怎么办。@Slashlinux,很高兴它帮助了你,也请查看链接如果有人在SO cheers上帮助你该怎么办。