Bash创建新目录并将每行的内容写入新目录中的文件中

问题描述 投票:0回答:1

我有一个名为events的文件。我想做的就是读取此文件,并为文件中的每一行创建一个名为dir1 ... dirn的新目录,其中nevents文件中的行号。然后,我想将每一行写到一个名为inp.dat的文本文件中。例如,如果events文件如下所示:

{'lat': 13.96, 'lon': -91.87, 'dep': 14, 'time': UTCDateTime('2019-11-30-07:44:23')}
{'lat': 38.94, 'lon': 143.44, 'dep': 49, 'time': UTCDateTime('2019-11-29-04:01:39')}
{'lat': -60.85, 'lon': -50.96, 'dep': 16, 'time': UTCDateTime('2019-11-28-00:26:31')}
{'lat': 19.22, 'lon': 94.94, 'dep': 75, 'time': UTCDateTime('2019-11-26-11:05:58')}

我想创建4个目录dir1dir2dir3dir4,并且在每个目录中都有一个文件inp.dat,其中包含相应行的内容。例如,在dir1中,我希望inp.dat只有{'lat': 13.96, 'lon': -91.87, 'dep': 14, 'time': UTCDateTime('2019-11-30-07:44:23')}

我将如何编写此脚本?谢谢。

bash
1个回答
0
投票

引号超出此具体示例所需的数量:

#!/bin/bash
let num=0
while read line
do
    let num++
    mkdir -p "dir${num}"
    printf '%s\n' "$line" > "dir${num}/inp.dat"
done < events
© www.soinside.com 2019 - 2024. All rights reserved.