在shell脚本中使用粘贴命令
我有3个文本文件。我想读取它们并将它们存储在不同的变量中,然后使用粘贴将它们连接起来,并在控制台中打印它们。 我尝试了以下代码,但它抛出了一个错误 找不到文件 这是我的密码在shell脚本中使用粘贴命令,shell,unix,paste,Shell,Unix,Paste,我有3个文本文件。我想读取它们并将它们存储在不同的变量中,然后使用粘贴将它们连接起来,并在控制台中打印它们。 我尝试了以下代码,但它抛出了一个错误 找不到文件 这是我的密码 #!/bin/sh value_1=`cat file_1.txt` value_2=`cat file_2.txt` value_3 = paste $value_1 $value_2 echo "$value_3" 注: shell中的=周围不允许有空间 backquote`用于旧式命令中 ` 替代,例如 foo=
#!/bin/sh
value_1=`cat file_1.txt`
value_2=`cat file_2.txt`
value_3 = paste $value_1 $value_2
echo "$value_3"
注:
- shell中的
周围不允许有空间=
- backquote`用于旧式命令中 `
foo=$(命令)
语法。$()
内部的反斜杠处理不那么令人惊讶,而且$()
更容易嵌套
检查
注:
- shell中的
周围不允许有空间=
- backquote`用于旧式命令中 `
foo=$(命令)
语法。$()
内部的反斜杠处理不那么令人惊讶,而且$()
更容易嵌套
选中第三行应为
value_3=`paste file_1.txt file_2.txt`
您需要反勾号,在value_3
后面没有空格,并且不要将变量用作参数,请使用文件名
它之所以说“未找到文件”,是因为
值_3
后面有一个空格被解释为要运行的命令 第三行应该是
value_3=`paste file_1.txt file_2.txt`
您需要反勾号,在value_3
后面没有空格,并且不要将变量用作参数,请使用文件名
它之所以说“未找到文件”,是因为
值_3
后面有一个空格被解释为要运行的命令 paste
希望其参数是文件名,而不是文件内容。对于bash、ksh或zsh,有一种解决方法。替换:
paste $value_1 $value_2
与:
实例
让我们使用以下两个测试文件:
$ cat file1
1
2
$ cat file2
a
b
现在,让我们将这些文件读入变量并对这些变量应用粘贴:
$ value_1=$(cat file1); value_2=$(cat file2)
$ paste <(printf "%s" "$value_1") <(printf "%s" "$value_2")
1 a
2 b
$value\u 1=$(cat文件1);值_2=$(cat文件2)
$pastepaste
要求其参数是文件名,而不是文件内容。对于bash、ksh或zsh,有一种解决方法。替换:
paste $value_1 $value_2
与:
实例
让我们使用以下两个测试文件:
$ cat file1
1
2
$ cat file2
a
b
现在,让我们将这些文件读入变量并对这些变量应用粘贴:
$ value_1=$(cat file1); value_2=$(cat file2)
$ paste <(printf "%s" "$value_1") <(printf "%s" "$value_2")
1 a
2 b
$value\u 1=$(cat文件1);值_2=$(cat文件2)
我试过你的建议。但它会提示我一个错误:“粘贴:line11296:没有这样的文件或目录”,其中line11296是文件_1.txt中的第一行和第一列。我试过你的建议了。但它会提示我一个错误:“粘贴:line11296:没有这样的文件或目录”,其中line11296是文件_1.txt中的第一行和第一列。请引导我