gpt4 book ai didi

regex - 如何使用 bash 脚本格式化这些数据

转载 作者:行者123 更新时间:2023-11-29 09:14:24 26 4
gpt4 key购买 nike

我想格式化数据

header1|header2|header3
"ID001"|"""TEST"""|"
TEST TEST TEST"|"TEST 4"
"ID002"|"TEST"|"TESTTESTTEST"|"TEST 5"

进入

header1|header2|header3
"ID001"|"TEST"|"TEST TEST TEST"|"TEST 4"
"ID002"|"TEST"|"TESTTESTTEST"|"TEST 5"

逻辑是

  • 保持原来的标题

  • 检查其他行,如果不是以 "开头,则将此行移动到上一行的末尾

  • 将“””替换为“”

我想用 bash 脚本格式化它。

我已经创建了这条线,但仍然无法正常工作

#!/bin/bash


if [ $# -eq 0 ]
then
echo "No arguments supplied"
exit;
fi

FOLD=$1"*"
CHECK=$1"/bix.done"



if test -f $CHECK; then
date > /result.txt
echo "starting Covert.... "
echo "from folder : " $1


for file in $FOLD
do
if [[ $file != *History* ]]; then
if [[ $file == *.csv ]]; then
FILETEMP=$file".temp"
mv $file $FILETEMP
awk '/^"/ {if (f) print f; f=$0; next} {f=f FS $0} END {print f}' $FILETEMP > $file
#rm $FILETEMP
fi
fi

done
date > /home/result.txt

fi



#ls $1 -l


最佳答案

这可能对你有用(GNU sed):

sed '1b;:a;N;/\n"/!s/\n//;ta;s/"""/"/g;P;D' file

始终打印第一个标题行。将下一行附加到当前行,如果该行不是以 " 开头,则删除换行符并重复直到有这样一行。现在用一个 " 代替"""全局,打印第一行并重复。

关于regex - 如何使用 bash 脚本格式化这些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57584693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com