ファイルを分割しようとすると問題が発生します。誰かがこれで私を助けることができますか?
サンプルコンテンツ:
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
sun osを使用する場合は、以下を試してください(サンプルが提供されていないため、テストされていません)。/usr/xpg4/bin/awk
または/usr/xpg6/bin/awk
(詳細については、この回答のコメントを参照してください)。
OPは次のソリューションの機能が機能していないawk
ところでOLDbrokenclose
を使用していたようです。そのため、OPにxpg
awk(s)を使用するよう提案しましたが、後でEdsirもそれを確認しました。
#!/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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加