我有一份包含员工数据" Emp.txt"
的文件EMPNO ENAME JOB MGR SAL COMM DEPTNO Date
7499 ALLEN SALESMAN 7698 1600 300 30 Null
.....(more 50 records)........
我想将每条记录加载到保存为" Empno.Ename"的新文件中。脚本还应检查文件在创建之前是否存在于路径中。如果存在,脚本应读取文件中的数据并使用当前时间戳更新日期列。
提前致谢!
答案 0 :(得分:0)
我认为你可以尝试awk这样的事情。 这样的事情怎么样?:
awk '{x=$2; print > x}' file.txt
您也可以进一步格式化输出。
答案 1 :(得分:0)
使用POSIX Shell
您可以从文件的非常简单的读取开始,将值读入num
,name
,将其余部分读入rest
变量,然后验证每个变量不为空并将整行重定向到由"$num.$name"
组成的文件中。只需一个简单的循环:
while read -r num name rest; do
if test -n "$num" -a -n "$name" -a -n "$rest"
then
echo "$num $name $rest" > "$num.$name"
fi
done < filename
(如果您的read
版本没有-r
,请忽略它)
如果需要,您还可以添加计数器以跳过任何标题行。如果您需要保留空格,您可以将整行读入单个变量(例如$line
),然后从{{1}解析num
和name
使用参数扩展和子串删除并执行验证,然后将原始$line
写入从$line
创建的文件名。
使用AWK
您可以使用"$num.$name"
执行相同的操作。要将awk
和num
字段合并为一个变量,您可以使用,例如name
。然后,将每行写入单独的x=$1"."$2
文件,您可以使用类似于:
num.name
awk '{x=$1"."$2; print > x}' filename
也有跳过标题行等的规定。