Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中连接字符串_Bash_Unix_Concatenation - Fatal编程技术网

在bash中连接字符串

在bash中连接字符串,bash,unix,concatenation,Bash,Unix,Concatenation,我无法将此字符串连接在一起。我的目标是拥有/folder/p/t/e test.txt包含字符串测试 cat test.txt|cd /folder/p/`awk '{print substr($,0,1)}'`/`awk '{print substr($0,1,1)}'` 它正在输出/folder/p/t/所以我认为它的第二个substr部分有问题 谁能帮我解释一下我是如何做到这一点的 谢谢 您假设您对awk的第二次调用将从test.txt中获得某些内容,但实际上并没有。 cat test.

我无法将此字符串连接在一起。我的目标是拥有/folder/p/t/e

test.txt包含字符串测试

cat test.txt|cd /folder/p/`awk '{print substr($,0,1)}'`/`awk '{print substr($0,1,1)}'`
它正在输出/folder/p/t/所以我认为它的第二个substr部分有问题

谁能帮我解释一下我是如何做到这一点的


谢谢

您假设您对awk的第二次调用将从test.txt中获得某些内容,但实际上并没有。 cat test.txt中的文本在管道和子外壳中的命令之后通过管道传输到命令。第一个awk接收所有输入,第二个awk没有输入,因为kojiro已经回答了

虽然合并两个awk命令可以解决问题,但不能保证这在其他情况下也能正常工作
贝壳。因为很多人把bash和“shell”混为一谈,所以我认为值得注意的是,一个更具可移植性的解决方案将是Beta版的解决方案。

您假设您对awk的第二次调用将从test.txt中获得一些东西,而它没有。 cat test.txt中的文本在管道和子外壳中的命令之后通过管道传输到命令。第一个awk接收所有输入,第二个awk没有输入,因为kojiro已经回答了

虽然合并两个awk命令可以解决问题,但不能保证这在其他情况下也能正常工作 贝壳。由于许多人将bash与“shell”混淆在一起,我认为值得注意的是,一个更具可移植性的解决方案将是Beta版的解决方案。

您的第一个awk实例捕获了所有stdin,因此您的第二个实例没有读取其中的任何内容。读取stdin的内容必须是单个命令

cat test.txt | cd /folder/p/`awk '{print substr($0,0,1)"/"substr($0,2,1)}'`
您的第一个awk实例正在捕获所有stdin,因此您的第二个实例没有读取其中的任何内容。读取stdin的内容必须是单个命令

cat test.txt | cd /folder/p/`awk '{print substr($0,0,1)"/"substr($0,2,1)}'`

必须在一行中完成吗?必须在一行中完成吗?我知道这与cd不是内置的无关。我提到它只是为了教育。我知道这与cd不是内置的没有任何关系。我提到它只是为了教育。谢谢!!成功了!非常感谢你!避开无用的猫!用法:awk