我有一个包含数千行的文件,它将块划分为字段6中的“名词”一词。每个块必须分成两个子块,一个子块包含字段的单词,一个子块不包含字母“j”(例如: magasabbikaiké),另一个块包含字母“j”(例如:magasabbikaiké)。
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="";
}
}发布于 2016-04-13 12:05:48
还不太清楚你想要实现什么,但我认为你想要这样:
我认为您可以直接打印不带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 "";
}https://stackoverflow.com/questions/36593256
复制相似问题