如何解决每次之后打印文本! 惊叹号
我想在bash中每个!
(感叹号)之后打印字符串/文本。
示例字符串/文本:
check_queue!TEST_IN!Queue!400!750
我想要这个输出:
TEST_IN Queue 400 750
我已经尝试过了:
cat filename | cut -d "!" -f2
解决方法
您快到了:
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)
:从第2个字符开始打印整个记录,因为第一个是空白定界符,但已擦除的第一个字段仍然存在。
拳头施加FOREACH线循环
while read s; do
#foreach substring
for (( i=0; i<${#s}; i++ )); do
if ["${s:$i:1}" != “!”] then
#add to the String the extra letter
String="${s} ${s:$i:1}"
else
#print each time you find !
print String
#prepare it to print next String
String =“”
fi
done
done <your filename.txt
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。