Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Linux尾部只包含整句话_Bash_Tail - Fatal编程技术网

Bash Linux尾部只包含整句话

Bash Linux尾部只包含整句话,bash,tail,Bash,Tail,我需要打印字符串的最后20个字符,但只打印整个单词。分隔符是一个空格“”。让我们来考虑这个例子: string=“敏捷的棕色狐狸跳过懒狗” echo$string | tail-c20 返回懒狗上方的s。我需要它通过懒狗返回。你知道如何做到这一点吗?谢谢 这在Bash>3.2中工作,无需使用任何外部程序: echo $string | perl -ne 'print "$1\n" if /\b(\S.{0,20})$/' [[ $string =~ \ (.{0,20})$ ]] result

我需要打印字符串的最后20个字符,但只打印整个单词。分隔符是一个空格“
”。让我们来考虑这个例子:

string=“敏捷的棕色狐狸跳过懒狗”
echo$string | tail-c20


返回懒狗上方的
s
。我需要它通过懒狗返回
。你知道如何做到这一点吗?谢谢

这在Bash>3.2中工作,无需使用任何外部程序:

echo $string | perl -ne 'print "$1\n" if /\b(\S.{0,20})$/'
[[ $string =~ \ (.{0,20})$ ]]
result="$BASH_REMATCH[1]"

我使用了UdiM的
grep
版本作为基础。

使用grep:echo$string | egrep-o'\@UdiM:你应该回答这个问题。这会输出前二十个单词。哈哈。。。很好的发现,改变了它的版本,但它仍然无法在多行。。。将研究。。。
[[ $string =~ \ (.{0,20})$ ]]
result="$BASH_REMATCH[1]"