linux - awk:输出文件太多 10 记录号 12
问题描述
我在尝试拆分文件时遇到问题。谁能帮我这个 ?
样本内容:
apple fruit
goa fruit
tomato vegetable
tiger animal
脚本:
#!/bin/bash
awk 'FNR==1 { hdr = $0; next }
{
if(!f[$2]) { print hdr >"file" $2".htm"; f[$2] = 1 }
print >>"file" $2".htm"
}' samplefile.txt
解决方案
/usr/xpg4/bin/awk
如果使用 sun os或/usr/xpg6/bin/awk
(也请参阅此答案中的评论以获取更多详细信息),您能否尝试以下操作(未测试,因为未提供示例)。
似乎 OP 正在使用 OLD 损坏awk
的close
功能在以下解决方案中不起作用,所以我建议 OP 使用xpg
awk(s),后来 Ed sir 也证实了这一点。
#!/bin/bash
awk 'FNR==1 { hdr = $0; next }
{
if($2 != prev){close(file)}
file="file" $2 ".htm"
if(!f[$2]) {print hdr > file; f[$2] = 1 }
print >> file
prev=$2
}' samplefile.txt
或尝试:
#!/bin/bash
awk 'FNR==1 { hdr = $0; next }
{
file="file" $2 ".htm"
if(file!=prev){close(prev)}
if(!f[$2]) {print hdr > file; f[$2] = 1 }
print >> file
prev=file
}' samplefile.txt
推荐阅读
- r - 如何以网格模式整齐地排列用户输入复选框(或其他用户输入)?
- python - 如果里面的内容是数字,去掉括号
- css - 嵌入样式表在 Xamarin 中不起作用
- asp.net - 为什么 PayPal 的示例订单 API 代码会在我的 ASP.NET Web 应用程序中生成错误?
- json - 如何忽略 jq 中损坏的 JSON 行?
- python - 我无法使用python循环遍历excel中的整行
- ethereum - 使用 BaseURI 在 IPFS 上存储 NFT 元数据,我可以在生成令牌时动态更新 JSON 吗?
- php - CPT 和父页面的自定义永久链接。高级WordPress
- html - 将图像隐藏在其他图像后面
- java - 拆分电子邮件:密码到电子邮件列表和密码列表