截取分割

#$%

格式 说明
${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
2
3
4
5
6
7
8
9
10
cs@debian:~/oss/hexo$ var=https://github.com/csyuancode/csyuancode.github.io/tree/master/js

#一次匹配
cs@debian:~/oss/hexo$ echo ${var#*cs}
yuancode/csyuancode.github.io/tree/master/js

##最后一次匹配
cs@debian:~/oss/hexo$ echo ${var##*cs}
yuancode.github.io/tree/master/js

%

从末尾开始往前删除保留匹配剩下字符

1
2
3
4
5
6
7
8
9
cs@debian:~/oss/hexo$ var=https://github.com/csyuancode/csyuancode.github.io/tree/master/js

#截取从后面开始第一次cs前字符
cs@debian:~/oss/hexo$ echo ${var%cs*}
https://github.com/csyuancode/

#截取从后面开始最一次cs前字符
cs@debian:~/oss/hexo$ echo ${var%%cs*}
https://github.com/

tr

去除空行

1
2
3
cat file.txt |tr -s ‘\n’

cat file.txt |sed '/^$/d'

列对齐

1
2
3
4
5
6
7
8
9
10
11
12
❯ cat 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/"


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/"

点击打赏
文章目录
  1. 1. #$%
    1. 1.1. #
    2. 1.2. %
  2. 2. tr
  3. 3. 列对齐
    1. 3.1. awk
    2. 3.2. pr
    3. 3.3. column
载入天数...载入时分秒... ,