1

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

test.txt 包含字符串“test”。

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

它正在输出/folder/p/t/,所以我认为它的第二个 substr 部分有问题。

谁能帮助阐明我如何做到这一点?

谢谢!

4

3 回答 3

3

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

cat test.txt | cd /folder/p/`awk '{print substr($0,0,1)"/"substr($0,2,1)}'`
于 2013-03-24T06:26:53.490 回答
1
FOO=$(< test.txt)
cd /folder/p/${FOO:0:1}/${FOO:1:1}
于 2013-03-24T06:27:40.470 回答
0

你假设你的第二个电话awk会从 得到一些东西test.txt,但事实并非如此。文本 fromcat test.txt在管道之后通过管道传输到命令,并且子 shell(第一个awk)中的命令接收所有输入,第二个没有输入awk,因为 kojiro 已经回答了。

虽然合并这两个awk命令将解决问题,但不能保证这将在其他 shell 中工作。因为很多人bash通常会与“shell”混淆,所以我认为值得注意的是,Beta 提供的更便携的解决方案。

于 2013-03-24T06:20:39.860 回答