awk脚本
awk 'BEGIN {FS = "\t"} $1==prev {printf "\t" $2} $1 != prev {printf "\n" $1,$2} {prev=$1}'
Run Code Online (Sandbox Code Playgroud)
当遇到亵渎的线条时,它就会倒下.下面的行在它们年后(括号中)以制表符分隔.
Richard Pryor... Here and Now (1983) stand-up
Richard Pryor... Here and Now (1983) stand-up-comedian
Richard Pryor... Here and Now (1983) stand-up-comedy
Richard Pryor: I Ain't Dead Yet, #*%$#@!! (2003) african-american
Run Code Online (Sandbox Code Playgroud)
获得错误
awk: cmd. line:1: (FILENAME=temp.list FNR=4) fatal: arg count with `$' must be > 0
Run Code Online (Sandbox Code Playgroud)
另一行(再次包含不解析的亵渎)
Merry F#%$in' Christmas (2005) censored-profanity-in-title
Run Code Online (Sandbox Code Playgroud)
标签再次在括号内的年份之后.
该printf错误占你看到的问题:printf需要格式说明后一个逗号:
{printf "\t%s", $2}
{printf "\n%s\t%s", $1,$2}
Run Code Online (Sandbox Code Playgroud)
你使用它的方式是,你连接换行符和$ 1来形成格式说明符.由于$ 1包含一个未经编码的%,printf会混淆并抛出错误.
此外,您的最后一行不会以换行结束,因此最后添加此子句:
END {print ""}
Run Code Online (Sandbox Code Playgroud)