我想在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
,只需处理文件
CCD_ 4将感叹号CCD_ 5翻译成空格CCD_。
或者,如果您的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)
:打印从第二个字符开始的整个记录,因为第一个字符是从擦除的第一个字段保留的空白分隔符
首先应用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