永发信息网

linux shell 脚本 wak语句中 awk 'BEGIN { FS="'"'"'";RS="\n&qu

答案:3  悬赏:40  手机版
解决时间 2021-04-01 17:32
  • 提问者网友:嘚啵嘚啵
  • 2021-04-01 08:20
linux shell 脚本 wak语句中 awk 'BEGIN { FS="'"'"'";RS="\n"} {for (i=2;i<=NF;i=i+2)
最佳答案
  • 五星知识达人网友:英雄的欲望
  • 2021-04-01 09:26
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追问恩 谢谢。不过知道FS="'"'"'"; 这个例子的具体含义吗,是什么样的分隔符追答这个分割符号就是'(单引号),但是'和"对awk来说都是关键符号,所以要作特殊处理,但我不知道为什么为这么处理~
全部回答
  • 1楼网友:詩光轨車
  • 2021-04-01 10:55
其实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="'\''" 双冒号、单冒号、斜杠、单冒号、单冒号、双冒号
  • 2楼网友:千夜
  • 2021-04-01 10:37
RS/ORS:行输入/输出分隔符,默认回车
FS/OFS:字段的输入/输出分隔符,默认为空格和制表符Tab
上面的意思表示为:以“'”作为字段分隔符,以换行作为行分隔符。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯