我有一个包含一些数据的文本文件,这些数据用虚线分隔。我需要将每天的数据存储在一个包含01-01-2017
Some text data
--------------------------
10-10-2017
Some text data
--------------------------
的单独文件中。
INPUT_FILE:
while read line; do
if [[ $line =~ ^[0-9]{2}-[0-9]{2}-[0-9]{4}$ ]] ; then; fi
done > Input_file
到目前为止,我尝试的是:代码中有一些错误。
sudo apt-get build-dep python-matplotlib
我正在尝试从文件中读取日期格式并创建新文件并向其附加数据格式。
答案 0 :(得分:1)
如果您正在寻找bash
解决方案,请使用:
#!/bin/bash
f="${1?needs a filename}"
while IFS= read -r line; do
[[ $line =~ ^([0-9]{2})-([0-9]{2})-([0-9]{4})$ ]] &&
fn="${f}_${BASH_REMATCH[3]}${BASH_REMATCH[2]}${BASH_REMATCH[1]}"
[[ $line =~ ^-+$ ]] || echo "$line" >> "$fn"
done < "$f"
否则这个稍微冗长的awk
也会起作用:
awk '/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/{
split($0, a, "-"); if (fn) close(fn); fn = FILENAME "_" a[3] a[2] a[1]}
!/^-+$/{print $0 > fn}' filename