首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >awk未能将行与变量($PWD)连接起来

awk未能将行与变量($PWD)连接起来
EN

Unix & Linux用户
提问于 2019-08-15 18:55:33
回答 2查看 885关注 0票数 0

我有一个包含目录列表的文件:

代码语言:javascript
复制
$ cat dirs.txt
/some/path
/other/path
/some/another/one

当前目录是/home/loom

代码语言:javascript
复制
$ echo $PWD
/home/loom

我想将$PWD添加到dirs.txt的每一行,如下所示:

代码语言:javascript
复制
/home/loom/some/path
/home/loom/other/path
/home/loom/some/another/one

我尝试了以下命令,但没有成功:

代码语言:javascript
复制
$ cat dirs.txt | awk '{print $PWD$1}'
/some/path/some/path
/other/path/other/path
/some/another/one/some/another/one

每一排都翻了一番。什么命令解决了我的问题?

我是说参数答案,而不是cat dirs.txt | awk '{print "/home/loom" $1}'

EN

回答 2

Unix & Linux用户

发布于 2019-08-15 18:58:51

PWD是一个shell变量,因此不会在awk使用的单引号中展开。

代码语言:javascript
复制
awk -v pwd="$PWD" '{print pwd$1}' dirs.txt

这将将pwd awk变量设置为PWD shell变量的值,然后打印dirs.txt中每一行的第1列,并将该值加到开头。

使用GNU,您可以使用-i inplace选项用输出覆盖您的文件,否则您将不得不将其重定向到一个新文件,并根据需要覆盖旧文件。

票数 3
EN

Unix & Linux用户

发布于 2019-08-15 19:11:09

当然,有更多的方法可以做到这一点,因此,既然您需要任何解决问题的命令,那么另一种方法可能是:

代码语言:javascript
复制
while read -r line; do echo "${PWD}${line}"; done < "dirs"
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/535783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档