还有 rev/cut/rev
rev/cut/rev
$ echo abcdefghijklmnopqrstuvwxyz | rev | cut -c1-11 | rev pqrstuvwxyz
您可以使用tail或Parameter Expansion:
string='Sample Text_that-would$normally~be,here--pe_-l4_mBY' echo "$string" | tail -c 11 echo "${string#${string%??????????}}" pe_-l4_mBY pe_-l4_mBY
你可以用它 sed 使用捕获组:
sed
sed -E 's/.*(.{11})$/\1/' file
-pe_-l4_mBY
试试这个:
grep -o -E '.{11}$' food
grep , 喜欢 sed ,接受任意数量的文件名参数,因此不需要单独的 cat 。 (也可以看看 无用的使用 cat 。)
grep
cat
基本正则表达式(默认使用 sed )要求转义捕获组中的括号和大括号表达式中的大括号。 ( 和 { 否则被视为要匹配的文字字符。
(
{
$ cat food | sed 's/^.*\(.\{3\}\)$/\1/' mBY
相比之下,明确要求 sed 使用扩展正则表达式 -E 选项颠倒了含义 \( 和 \{ 是文字人物。
-E
\(
\{
$ cat food | sed -E 's/^.*(.{3})$/\1/' mBY