在列的开头和结尾添加字符

use*_*000 3 text-processing columns

我有一个这样的文件:

78@54@this@15@23
65@22@is@92@16
34@12@an@14@18
13@42@example@52@22
Run Code Online (Sandbox Code Playgroud)

我想把它改成这样:

"78"@54@"this"@15@23
"65"@22@"is"@92@16
"34"@12@"an"@14@18
"13"@42@"example"@52@22
Run Code Online (Sandbox Code Playgroud)

我已经为此苦苦挣扎了很长时间,但我不明白该怎么做。任何帮助表示赞赏,谢谢。

lae*_*ade 5

你可以试试awk:

echo "78@54@this@15@23
65@22@is@92@16
34@12@an@14@18
13@42@example@52@22" |
awk -F@ '{print "\""$1"\"@"$2"@\""$3"\"@"$4"@"$5}' 

"78"@54@"this"@15@23
"65"@22@"is"@92@16
"34"@12@"an"@14@18
"13"@42@"example"@52@22
Run Code Online (Sandbox Code Playgroud)


gle*_*man 5

有点冗长,但我会写这个awk:

awk -F@ -v OFS=@ '
    function quote(x) {return sprintf("\"%s\"", x)}
    {print quote($1), $2, quote($3), $4}
'
Run Code Online (Sandbox Code Playgroud)