linux shell 脚本 wak语句中 awk 'BEGIN { FS="'"'"'";RS="\n"} {for (i=2;i<=NF;i=i+2)
3个回答
展开全部
其实FS="'"'"'";的意思是以 ' (单冒号)作为分隔符(粘贴到这上面看着不是太清楚,你自己弄下)
linux-hg2:~ # echo '_"'"'"'"_'
_"'"_ (两个双冒号,中间一个单冒号)
linux-hg2:~ # cat test.txt
ab'c'b
linux-hg2:~ # awk 'BEGIN { FS="'"'"'";RS="\n"}{print $1,$2}' test.txt
ab c
linux-hg2:~ #
效果等同于FS="'\''" 双冒号、单冒号、斜杠、单冒号、单冒号、双冒号
linux-hg2:~ # echo '_"'"'"'"_'
_"'"_ (两个双冒号,中间一个单冒号)
linux-hg2:~ # cat test.txt
ab'c'b
linux-hg2:~ # awk 'BEGIN { FS="'"'"'";RS="\n"}{print $1,$2}' test.txt
ab c
linux-hg2:~ #
效果等同于FS="'\''" 双冒号、单冒号、斜杠、单冒号、单冒号、双冒号
展开全部
RS/ORS:行输入/输出分隔符,默认回车
FS/OFS:字段的输入/输出分隔符,默认为空格和制表符Tab
上面的意思表示为:以“'”作为字段分隔符,以换行作为行分隔符。
FS/OFS:字段的输入/输出分隔符,默认为空格和制表符Tab
上面的意思表示为:以“'”作为字段分隔符,以换行作为行分隔符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
FS表示操作的时候以什么为分割符
RS表示记录分割符(Record Separator)
即RS表示的是awk操作最小单位的边界,而FS是这个最小单位中分割的符号
例如:
101,John Doe:102,Jason Smith:103,Raj Reddy
如果不指定RS,指定FS为“,”,那么awk将101作为第一列,剩下的全部为第二列,如果指定RS=":",那么awk就会将内容作为三“行”,第一列包括101,102和103,第二列包括John Doe,Jason Smith和Raj Reddy
RS表示记录分割符(Record Separator)
即RS表示的是awk操作最小单位的边界,而FS是这个最小单位中分割的符号
例如:
101,John Doe:102,Jason Smith:103,Raj Reddy
如果不指定RS,指定FS为“,”,那么awk将101作为第一列,剩下的全部为第二列,如果指定RS=":",那么awk就会将内容作为三“行”,第一列包括101,102和103,第二列包括John Doe,Jason Smith和Raj Reddy
追问
恩 谢谢。不过知道FS="'"'"'"; 这个例子的具体含义吗,是什么样的分隔符
追答
这个分割符号就是'(单引号),但是'和"对awk来说都是关键符号,所以要作特殊处理,但我不知道为什么为这么处理~
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询