所以我有一个文件,其中包含不同列中六个不同事物的数据:
1 0.020 0.700 5.4 1500 4000
2 0.020 0.700 5.4 1500 4050
3 0.020 0.700 5.4 1500 4100
4 0.020 0.700 5.4 1500 4150
5 0.020 0.700 5.4 1500 4200
我想将六列中的值读取到我当前在下面设置的第二个文件中。我打算使用这些作为输入来读入第三个文件“inlist_changer.sh”文件。我很抱歉,但我对 shell 脚本编写不是很有经验,所以也许除此之外,您可能知道一种更有效的方法,让我甚至不重复交换bash
和EOT
命令。
bash inlist_changer.sh<<EOT
placeholder_value1
EOT
bash inlist_changer.sh<<EOT
placeholder_value2
EOT
bash inlist_changer.sh<<EOT
placeholder_value3
EOT
bash inlist_changer.sh<<EOT
placeholder_value4
EOT
bash inlist_changer.sh<<EOT
placeholder_value5
EOT
bash inlist_changer.sh<<EOT
placeholder_value6
EOT
./mk
./rn
bash inlist_changer.sh<<EOT
placeholder_value1
EOT
bash inlist_changer.sh<<EOT
placeholder_value2
EOT
bash inlist_changer.sh<<EOT
placeholder_value3
EOT
bash inlist_changer.sh<<EOT
placeholder_value4
EOT
bash inlist_changer.sh<<EOT
placeholder_value5
EOT
bash inlist_changer.sh<<EOT
placeholder_value6
EOT
./rn
bash inlist_changer.sh<<EOT
placeholder_value1
EOT
bash inlist_changer.sh<<EOT
placeholder_value2
EOT
bash inlist_changer.sh<<EOT
placeholder_value3
EOT
bash inlist_changer.sh<<EOT
placeholder_value4
EOT
bash inlist_changer.sh<<EOT
placeholder_value5
EOT
bash inlist_changer.sh<<EOT
placeholder_value6
EOT
./rn
答案1
您可以使用 shell 的read
命令来执行操作,而无需修改中间文件:
#!/bin/bash
while read v1 v2 v3 v4 v5 v6 ; do
echo "v1:$v1 v2:$v2 v3$v3 v4:$v4 v5:$v5 v6:$v6"
done < /path/to/data-file.dat
read
通过从 shell 实例中运行来查看该命令的文档help read
,当然,您始终可以通过为默认 shell 运行 or 或 来man builtins
获取更多文档。man bash
man sh