Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
读取文件shell bash时创建键值对_Bash_Shell_Parsing_Unix - Fatal编程技术网

读取文件shell bash时创建键值对

读取文件shell bash时创建键值对,bash,shell,parsing,unix,Bash,Shell,Parsing,Unix,我在custom_target.config中有一个文件。我有一个shell脚本,它将读取这个配置文件。配置文件按文件名和我试图将其移动到的目标目录进行分割。我想知道最好的方法是分割文件中的行并开始将文件移动到相应的位置 EXAMPLE_FILE /home/user/example EXAMPLE_FILE_1 /home/user/example EXAMPLE_FILE_1 /home/user/example/subfolder 迄今为止的尝试: while IFS='' read -

我在custom_target.config中有一个文件。我有一个shell脚本,它将读取这个配置文件。配置文件按文件名和我试图将其移动到的目标目录进行分割。我想知道最好的方法是分割文件中的行并开始将文件移动到相应的位置

EXAMPLE_FILE /home/user/example
EXAMPLE_FILE_1 /home/user/example
EXAMPLE_FILE_1 /home/user/example/subfolder
迄今为止的尝试:

while IFS='' read -r line || [[ -n "$line" ]]; do
    for element in $line
    do
      echo $element
    done
    #echo "Text read from file: $line"
done < "$1"
而IFS=''读取-r行| |[[-n“$line”];做
对于$line中的元素
做
echo$元素
完成
#echo“从文件读取的文本:$line”
完成<“$1”

阅读
进行分词,而不是信任
$line
不要做任何奇怪的事情

while read -r key value; do
  echo "KEY: $key"
  echo "VALUE: $value"
done < "$1"
读取时-r键值;做
echo“KEY:$KEY”
回显“值:$VALUE”
完成<“$1”
您可以使用Awk: 复制文件 移动文件 打印要执行的字符串:(
cp文件\u名称路径

$1
-第一个用空格分隔的字段(文件名)

$2
-第二个字段,用空格分隔(路径名)

awk'{printf“cp”$1”“$2}'自定义_target.config


使用`执行输出字符串

感觉这应该在*nix上结束。我刚才也在看同样的东西:)你想把
EXAMPLE\u文件
移到
/home/user/EXAMPLE
?在IFS=read-r file dir时尝试
;执行echo mv“${file}”“${dir}”;完成<“$1”并在需要时删除
echo`。善待您的脚本:确保为它们提供有效的POSIX文本文件(以换行结尾),而不是使用类似于
| |[[-n$line]]]
的黑客将其弄乱。
  `awk '{printf "cp "$1" "$2}' custom_target.config`
  `awk '{printf "mv "$1" "$2}' custom_target.config`