我有一个带有这方面数千行的文件,它将块分为字段6中的“主格”字。每个块,必须分成两个子块,一个用字段的字一个,不包含字母“j”(例如:magasabbikaiké)和另一个包含字母“j”的块(例如:magasabbikjaiké)
magasabbikaiké /j/aiké plural 3pl singular nominative
magasabbikjaiké /j/aiké plural 3pl singular nominative
magasabbikaikét /j/aikét plural 3pl singular accusative
magasabbikjaikét /j/aikét plural 3pl singular accusative
magasabbikaikénak /j/aikénak plural 3pl singular dative
magasabbikjaikénak /j/aikénak plural 3pl singular dative
magasabbikaikéval /j/aikéval plural 3pl singular instrumental
magasabbikjaikéval /j/aikéval plural 3pl singular instrumental
magasabbikaikéért /j/aikéért plural 3pl singular causal-final
magasabbikjaikéért /j/aikéért plural 3pl singular causal-final
magasabbikaikévá /j/aikévá plural 3pl singular translative
magasabbikjaikévá /j/aikévá plural 3pl singular translative
magasabbikaikéig /j/aikéig plural 3pl singular terminative
magasabbikjaikéig /j/aikéig plural 3pl singular terminative
magasabbikaikéban /j/aikéban plural 3pl singular inessive
magasabbikjaikéban /j/aikéban plural 3pl singular inessive
magasabbikaikén /j/aikén plural 3pl singular superessive
magasabbikjaikén /j/aikén plural 3pl singular superessive
magasabbikaikénál /j/aikénál plural 3pl singular adessive
magasabbikjaikénál /j/aikénál plural 3pl singular adessive
magasabbikaikéba /j/aikéba plural 3pl singular illative
magasabbikjaikéba /j/aikéba plural 3pl singular illative
magasabbikaikéra /j/aikéra plural 3pl singular sublative
magasabbikjaikéra /j/aikéra plural 3pl singular sublative
magasabbikaikéhoz /j/aikéhoz plural 3pl singular allative
magasabbikjaikéhoz /j/aikéhoz plural 3pl singular allative
magasabbikaikéból /j/aikéból plural 3pl singular elative
magasabbikjaikéból /j/aikéból plural 3pl singular elative
magasabbikaikéról /j/aikéról plural 3pl singular delative
magasabbikjaikéról /j/aikéról plural 3pl singular delative
magasabbikaikétól /j/aikétól plural 3pl singular ablative
magasabbikjaikétól /j/aikétól plural 3pl singular ablative
magasabbikaikéi /j/aikéi plural 3pl plural nominative
magasabbikjaikéi /j/aikéi plural 3pl plural nominative
magasabbikaikéit /j/aikéit plural 3pl plural accusative
magasabbikjaikéit /j/aikéit plural 3pl plural accusative
....
期望的输出:
magasabbikaiké /j/aiké plural 3pl singular nominative
magasabbikaikét /j/aikét plural 3pl singular accusative
magasabbikaikénak /j/aikénak plural 3pl singular dative
magasabbikaikéval /j/aikéval plural 3pl singular instrumental
magasabbikaikéért /j/aikéért plural 3pl singular causal-final
magasabbikaikévá /j/aikévá plural 3pl singular translative
magasabbikaikéig /j/aikéig plural 3pl singular terminative
magasabbikaikéban /j/aikéban plural 3pl singular inessive
magasabbikaikén /j/aikén plural 3pl singular superessive
magasabbikaikénál /j/aikénál plural 3pl singular adessive
magasabbikaikéba /j/aikéba plural 3pl singular illative
magasabbikaikéra /j/aikéra plural 3pl singular sublative
magasabbikaikéhoz /j/aikéhoz plural 3pl singular allative
magasabbikaikéból /j/aikéból plural 3pl singular elative
magasabbikaikéról /j/aikéról plural 3pl singular delative
magasabbikaikétól /j/aikétól plural 3pl singular ablative
magasabbikjaiké /j/aiké plural 3pl singular nominative
magasabbikjaikét /j/aikét plural 3pl singular accusative
magasabbikjaikénak /j/aikénak plural 3pl singular dative
magasabbikjaikéval /j/aikéval plural 3pl singular instrumental
magasabbikjaikéért /j/aikéért plural 3pl singular causal-final
magasabbikjaikévá /j/aikévá plural 3pl singular translative
magasabbikjaikéig /j/aikéig plural 3pl singular terminative
magasabbikjaikéban /j/aikéban plural 3pl singular inessive
magasabbikjaikén /j/aikén plural 3pl singular superessive
magasabbikjaikénál /j/aikénál plural 3pl singular adessive
magasabbikjaikéba /j/aikéba plural 3pl singular illative
magasabbikjaikéra /j/aikéra plural 3pl singular sublative
magasabbikjaikéhoz /j/aikéhoz plural 3pl singular allative
magasabbikjaikéból /j/aikéból plural 3pl singular elative
magasabbikjaikéról /j/aikéról plural 3pl singular delative
magasabbikjaikétól /j/aikétól plural 3pl singular ablative
magasabbikaikéi /j/aikéi plural 3pl plural nominative
magasabbikaikéit /j/aikéit plural 3pl plural accusative
....
magasabbikjaikéi /j/aikéi plural 3pl plural nominative
magasabbikjaikéit /j/aikéit plural 3pl plural accusative
....
我做了什么:
BEGIN {
FS="\t";
}
{
id="nominative"
if ($6 != id)
{
split(line_3,A,"\n")
if (match($1,"j")==0)
{
line_1=line_1 $0"\n";
}
else
{
line_2=line_2 $0"\n";
}
line_3="";
}
else
{
line_3=line_3 $0"\n";
print A[1]"\n"line_1;
print A[2]"\n"line_2;
line_1="";
line_2="";
}
}
答案 0 :(得分:0)
目前还不是很清楚你想要实现什么,但我认为你想要这个:
我认为您可以立即打印条目而不用j,并使用j在临时字符串中保存条目。跟踪当前行和上一行是否为主格。如果当前行是主格而前一行不是,则刷新并重置临时字符串。
第一行之前的行被人为地设置为非主格。您还必须在末尾刷新临时字符串。
BEGIN {
FS = "\t";
id = "nominative";
prev = 0; # was last line "nominative"?
withj = ""; # temporary string for words with j
}
{
curr = ($6 == id) # is this line "nominative"?
if (curr && !prev) { # begin a new block
print "";
if (withj) {
print withj;
print "";
}
withj = "";
}
if (match($1, "j")) { # separate j and non-j
withj = withj $0 "\n";
} else {
print;
}
prev = curr;
}
END {
print ""; # flush everything at the end
print withj;
print "";
}