You can use
sed -E 's/[^|]+/"&"/g' file > newfile
The -E
option enables the POSIX ERE syntax and [^|]+
thus matches one or more chars other than |
, and "&"
replaces each with its copy enclosed with "
on both sides.
See the online sed
demo:
s='1|2|3|4|
5|6|7|8|
9|10|11|12|'
sed -E 's/[^|]+/"&"/g' <<< "$s"
Output:
"1"|"2"|"3"|"4"|
"5"|"6"|"7"|"8"|
"9"|"10"|"11"|"12"|
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…