首页 > 解决方案 > 每 ! (感叹号)在bash

问题描述

我想!在bash中的每个(感叹号)之后打印字符串/文本。

示例字符串/文本:

check_queue!TEST_IN!Queue!400!750

我想要这个输出:

TEST_IN Queue 400 750

我试过这个:

cat filename | cut -d "!" -f2

标签: bashprintingdelimitercut

解决方案


你几乎在那里:

cut -d! -f2- filename | tr '!' ' '

-f2-表示字段 2 和所有后续字段

不需要cat,只要在文件上工作

tr '!' ' '将感叹号翻译!成空格

或者,如果您的版本cut有一个--output-delimiter=选项:

cut --delimiter=! --fields=2- --output-delimiter=' ' filename

或使用awk

awk -F! '{$1=""; print substr($0,2)}' filename
  • -F!:将字段分隔符设置为!
  • $1="":擦除第一个字段
  • print substr($0,2):从第二个字符开始打印整个记录,因为第一个是空白分隔符,保留在擦除的第一个字段中。

推荐阅读