#$%
格式 | 说明 |
---|---|
${string: start :length} | 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。 |
${string: start} | 从 string 字符串的左边第 start 个字符开始截取,直到最后。 |
${string: 0-start :length} | 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。 |
${string: 0-start} | 从 string 字符串的右边第 start 个字符开始截取,直到最后。 |
${string#*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string##*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string%*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
${string%%*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
1 | var=https://github.com/csyuancode/csyuancode.github.io/tree/master/js |
#
从左边开始截取删除保留匹配剩下字符
1 | cs@debian:~/oss/hexo$ var=https://github.com/csyuancode/csyuancode.github.io/tree/master/js |
%
从末尾开始往前删除保留匹配剩下字符
1 | cs@debian:~/oss/hexo$ var=https://github.com/csyuancode/csyuancode.github.io/tree/master/js |
tr
去除空行
1 | cat file.txt |tr -s ‘\n’ |
列对齐
1 | ❯ cat atest |
awk
❯ awk -F= ‘{printf “%-20s%-s\n”, $1, $2}’ atest
PRETTY_NAME “Debian GNU/Linux 12 (bookworm)”
NAME “Debian GNU/Linux”
VERSION_ID “12”
VERSION “12 (bookworm)”
VERSION_CODENAME bookworm
ID debian
HOME_URL “https://www.debian.org/"
SUPPORT_URL “https://www.debian.org/support"
BUG_REPORT_URL “https://bugs.debian.org/"
pr
❯ cat atest | tr ‘=’ ‘ ‘ | pr -t -s” “ -a
PRETTY_NAME “Debian GNU/Linux 12 (bookworm)”
NAME “Debian GNU/Linux”
VERSION_ID “12”
VERSION “12 (bookworm)”
VERSION_CODENAME bookworm
ID debian
HOME_URL “https://www.debian.org/"
SUPPORT_URL “https://www.debian.org/support"
BUG_REPORT_URL “https://bugs.debian.org/"
-t
选项表示禁用标题行和页脚行,
-s" "
表示使用空格作为列之间的分隔符,列是以空格分隔的文本文件可以省略
-a
参数用于指定不进行分页,整页输出
column
❯sed ‘s/=/ /‘ atext.txt | column -t
PRETTY_NAME “Debian_12_(bookworm)”
NAME “Debian”
VERSION_ID “12”
VERSION “12
VERSION_CODENAME bookworm
ID debian
HOME_URL “https://www.debian.org/"
SUPPORT_URL “https://www.debian.org/support"
BUG_REPORT_URL “https://bugs.debian.org/"