我有一個如下所示的輸入文件。問題在於該文件是由管道分隔的,並且可以使用雙引號括起來。它是在第三場在字符串的結尾錯過,我可以看到,它發生每當長度超過2說附上一個缺少雙引號的字符串
"SER1828"|"ZXC"|"A1"|10002
"SER1878"|"IOP"|"B1"|98989
"SER1930"|"QWE"|"A2"|10301
"SER1930"|"QWE"|"Asdf2|10301 # 3rd field -> closing " missed out
輸出應該看起來像
"SER1828"|"ZXC"|"A1"|10002
"SER1878"|"IOP"|"B1"|98989
"SER1930"|"QWE"|"A2"|10301
"SER1930"|"QWE"|"Asdf2"|10301
我與努力一些awk命令但無法實現。
awk -F'|' -v q=\" '{$3=$3 q;}1' OFS=| temp
awk -F'|' -v q=\" '{if (length($3) > 2) ($3=$3;}1)}' OFS='|' temp
在您的雙引號封裝的數據,有沒有管道?像...有沒有不是分隔符的管道的數據?如果沒有,那麼只需用'gsub'將雙引號括出來,然後用'print'將它們粘貼回來。 – JNevill
沒有這樣的非定界管道,但要注意的是有一些沒有附帶雙引號的字段。查看編輯 – SriniV
是否只有缺失的結尾報價?在引用字段內還可以有管道嗎? – 123