在 Unix Shell 中将字符串打印在其自己的位置上

在 Unix Shell 中将字符串打印在其自己的位置上

我正在尝试打印文本文件的内容(实际上是它的字符串)。我熟悉一些命令,例如,,grep;我强制将字符串放在文件中的原始位置,但我做不到。你明白了吗?awksedecho

例子:

以下是字符串文件的一部分:

这是一个充满字符串的文本文件......

现在我想在 bash 上打印单词text,但不在行首。我想像这样在它自己的位置打印:

--------text---------------------------------

没有破折号。 我该怎么做?

答案1

可能是这样的吗?

$ echo 'This is a text file full of strings...' | 
    perl -pe 's/(^.*)(text)(.*$)/sprintf "%*s", length($1)+length($2), $2/e'
          text

即,在宽度等于其宽度与前缀宽度之和的字段中打印匹配的字符串。

相关内容