将字符串连接到 bash/csh 中每个输出行的末尾

发布于 2024-10-16 14:09:58 字数 200 浏览 7 评论 0原文

在 bash 命令行中,如果我运行“find . -name 'abc*' ”,它会打印出文件名列表,例如

abc1
abc2
abc3

如何使用 echo 或其他命令对其进行管道传输,以便我得到以下输出:

abc1   ok
abc2   ok
abc3   ok

In bash command line, if I run "find . -name 'abc*' ", it prints out a list of filenames like

abc1
abc2
abc3

How can I pipe it with echo or other command, so that i get this output:

abc1   ok
abc2   ok
abc3   ok

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

笨死的猪 2024-10-23 14:09:58
find . -name 'abc*' | sed 's/$/\tok/' | column -t

sed 将字符串 ok 附加到每一行,并且 column 很好地格式化了输出(如果您不这样做,您可以跳过此操作)不需要它)。

find . -name 'abc*' | sed 's/$/\tok/' | column -t

sed appends the string <Tab>ok to each line, and column formats the output nicely (you can just skip this, if you don't need it).

沙与沫 2024-10-23 14:09:58

我倾向于这样写:

whatever | while read line; do echo $line ok; done

对于这么简单的事情来说这可能有点过分了,但如果你想用这条线做更复杂的事情,它就成为最简单的事情。而且它不涉及记住如何使 sed 工作!

I tend to write:

whatever | while read line; do echo $line ok; done

That might be overkill for something this simple, but it becomes the simplest thing to do if you want to do more complicated things with the line. And it doesn't involve remembering how to make sed work!

只有一腔孤勇 2024-10-23 14:09:58

通过 GNU 查找,

find . -name "abc*" -printf "%f ok\n"

With GNU find,

find . -name "abc*" -printf "%f ok\n"
叹倦 2024-10-23 14:09:58

简单地:

$ find . -name 'abc*' | xargs -I {} echo {} OK

Simply:

$ find . -name 'abc*' | xargs -I {} echo {} OK
℉服软 2024-10-23 14:09:58

通过 sed 进行管道传输是一种方法:

 | sed -e 's/\(^.*\)/\1   ok/'

Pipe it through sed, is one way:

 | sed -e 's/\(^.*\)/\1   ok/'
红墙和绿瓦 2024-10-23 14:09:58

您可以使用 xargs:

find -iname "abc" | xargs -IREPL echo REPL ok

You could use xargs:

find -iname "abc" | xargs -IREPL echo REPL ok
梦里人 2024-10-23 14:09:58

看一下 paste 标准命令。或者对于 find 的每个元素,您可以手动回显文件名和该文件名上的函数的结果。

你能告诉我你最后想做什么吗?

Have a look at the paste standard command. Or for each element of what find shall get you manually echo the filename and the result of a function on that filename.

Can you please tell what you finally want to do?

最丧也最甜 2024-10-23 14:09:58

使用这样的东西:

find . -name "abc*" -exec echo "{} - ok" \;

Use something like this :

find . -name "abc*" -exec echo "{} - ok" \;
淡忘如思 2024-10-23 14:09:58
find . -name 'abc*' -exec echo {}' OK' \; | column -t
find . -name 'abc*' -exec echo {}' OK' \; | column -t
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文