我正在努力将 mkdir 添加到 awk 行中。
输入.txt:
A1 B1
A2 B2
A3 B3
目的:将每一行打印到一个新文件中。每个新文件都应具有相同的名称,例如“file.txt”。每个新文件都应打印到其自己的新文件夹中。文件夹名称应取自输入文件中相应行的第一个字段。结果文件夹结构:
home
|__input.txt
|
|__A1
| |__file.txt
|
|__A2
| |__file.txt
|
|__A3
| |__file.txt
我的 awk 使用输入中的文件名创建文件:
$ awk '{F = $1".txt"} {print > F}' input.txt
我的 awk 使用输入中的文件夹名称创建文件夹:
$ awk '{print "mkdir "$1}' input.txt | sh
但是如何组合这些并使用输入中的文件夹名称创建文件夹但保持相同的文件名“file.txt”?
您并不是真的“将 mkdir 添加到 awk 行中”。您将 awk 的输出通过管道传输到 shell。我认为这最好用一个 shell 脚本来完成(无论如何你都需要 shell 来调用mkdir
):
input=input.txt
newfile=file.txt
while IFS= read -r line; do
first="${line% *}" #This means "the line up to first space"
mkdir "$first"
echo "$line" > "$first/$newfile"
done < "$input"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句