获取一行的前 5 个和后 10 个字符的命令

tes*_*787 1 shell-script text-processing

我有以下几行:

postgres  3625     1  0 Jan31 ?        00:00:35 /opt/rh/rh-postgresql95/root/usr/bin/postgres -D /var/opt/rh/rh-postgresql95/lib/pgsql/data
Run Code Online (Sandbox Code Playgroud)

请给出一个命令来剪切前 5 个字符和后 10 个字符并将它们连接在一个单行命令中。

noh*_*ide 5

不太确定你想在这里做什么,但是

foo="postgres 3625 1 0 Jan31 ? 00:00:35 /opt/rh/rh-postgresql95/root/usr/bin/postgres -D /var/opt/rh/rh-postgresql95/lib/pgsql/data"
Run Code Online (Sandbox Code Playgroud)

您可以使用标准bash功能来运行

$ echo ${foo:0:5}
postg
$ echo ${foo: -10:10}
pgsql/data
$ echo ${foo:0:5} ${foo: -10:10}
postg pgsql/data
$ echo ${foo:0:5}${foo: -10:10}
postgpgsql/data
Run Code Online (Sandbox Code Playgroud)

第二个语句中的负偏移量表示“从末尾开始”。