![在 Unix Shell 中将字符串打印在其自己的位置上](https://linux22.com/image/1086800/%E5%9C%A8%20Unix%20Shell%20%E4%B8%AD%E5%B0%86%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%89%93%E5%8D%B0%E5%9C%A8%E5%85%B6%E8%87%AA%E5%B7%B1%E7%9A%84%E4%BD%8D%E7%BD%AE%E4%B8%8A.png)
我正在尝试打印文本文件的内容(实际上是它的字符串)。我熟悉一些命令,例如,,grep
;我强制将字符串放在文件中的原始位置,但我做不到。你明白了吗?awk
sed
echo
例子:
以下是字符串文件的一部分:
这是一个充满字符串的文本文件......
现在我想在 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
即,在宽度等于其宽度与前缀宽度之和的字段中打印匹配的字符串。