如何在 awk print 语句中的参数周围添加单引号?

发布于 2024-12-12 07:46:25 字数 381 浏览 0 评论 0原文

为了方便起见,我为工作副本中的所有已删除文件创建了一个别名:svn rm

alias svnrmall="svn status | grep '^\!' | awk '{print \$2}' | xargs svn rm"

这非常有效,除非文件名包含空格字符。

解决该问题的一个简单方法似乎是让 awk 将每个文件路径用单引号引起来,但我很难弄清楚如何做到这一点。

例如,类似这样的东西(除了这会导致错误:“表达式中的无效字符'''”):

alias svnrmall="... | awk \"{print '\$2'}\" | ..."

For convenience, I've created an alias to svn rm all deleted files in my working copy:

alias svnrmall="svn status | grep '^\!' | awk '{print \$2}' | xargs svn rm"

This works quite well, except when the filename contains a space character.

An easy solution to the problem seems to be to have awk enclose each file path in single quotes, but I'm having difficulty figuring out how to do that.

E.g., something like this (except this results in an error: "invalid char ''' in expression"):

alias svnrmall="... | awk \"{print '\$2'}\" | ..."

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

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

发布评论

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

评论(1

红衣飘飘貌似仙 2024-12-19 07:46:25

使用 -v 定义变量 q 并在 awk 中使用该变量

alias svnrmall="... | awk -v q="'" '{print q $2 q}' | ..."

Use -v to define variable q and use that variable in awk

alias svnrmall="... | awk -v q="'" '{print q $2 q}' | ..."
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文