我想自定义一个带有 * 字符的字符串,除了字符串中的第一个和最后 3 个字符,因为我不想在日志中打印这个字符串。
例如:如果字符串是abctextxyz
,我希望将其更改为abc****xyz
我尝试使用 * 打印字符串,除了第一个和最后 3 个字符,但将其硬编码为 7 个字母的字符串。我想将它定制为任意长度。
如果字符串为 6 个字符或更少,则应按原样打印。
这是我为此目的创建的 bash 脚本:
#!/bin/bash
STRING1="testabctest";
echo $STRING1;
STRING2=${STRING1:0:3};
echo $STRING2;
STRING3=${STRING1:(-3)};
echo $STRING3;
STRING4=$STRING2"****"$STRING3;
echo $STRING4
此脚本用于
sed
用星号替换字符。它还用于bc
计算应使用的星号数量并seq
在printf
命令中定义范围。使用字符串操作将字符串替换为星号。