我有这个脚本来分隔第一列和第二列的文件
COMMIT TRAN;
但我希望在分离文件后删除第二列,并在文件名中包含日期。
这是输入样本
awk -F\| 'NR>1 {print > "SEPARATE_COLUMN_"$1"_"$2".csv"}' name_1.csv
我想要的输出是新文件名SEPARATE_COLUMN_a_b_todaydate.csv
column1|column2|column3
a|b|1
a|b|2
a|d|2
额外注释 - 我有许多要分开的文件,name_1.csv,name_2.csv等等
- 不同的文件具有不同的列数
谢谢!
答案 0 :(得分:0)
awk -F\| 'NR>1 {print > "SEPARATE_COLUMN_"$1"_"$2"_"strftime("%d-%m-%y" ,systime())".csv"}' name_1.csv
这使用了awk
内置的strftime
功能。 %d-%m-%y
是从systime()
转换的时间格式,它返回纪元时间。
或者您可以使用:这将使用bash计算当前日期并将其存储到变量中供以后使用。
awk -v date="$(date +"%Y-%m-%d ")" -F\| 'NR>1 {print > "SEPARATE_COLUMN_"$1"_"$2"_"date".csv"}' name_1.csv
答案 1 :(得分:0)
也许你可以用它来详细说明。
awk -F\| 'NR<4{print $1,$3}' OFS=\| file
column1|column3
a|1
a|2