Я хотел бы иметь возможность удалить первое слово, написанное заглавными буквами после периода.Цель состоит в том, чтобы удалить первое слово, написанное заглавными буквами, даже если предложения в одной строке два.На самом деле, как я покажу в этом примере, первое слово строки было опущено, но появляется первое слово второго предложения.
Для первого предложения первой строки я решил проблему следующим образом:начиная с 2 вместо 1:
вот код
BEGIN { FS="[^[:alpha:]']+"; OFS=" "}
{
parola=" "
max_nr=0
prec=""
for (i=2; i<=NF; i++) {
if ($i ~ /[[:punct:][:digit:]]+[:space:]*[A-Z][']{0,1}[A-Z]{0,1}[a-z]+/){
continue
}
else{
if ($i ~ /[A-Z][']{0,1}[A-Z]{0,1}[a-z]+/){
if(!(prec=="")){
prec=prec" "$i
}
else{
prec=$i
}
}
else {
if(!(prec=="")){
words[prec]
prec=""
}
}
if (i==NF) {
max_nr=max_nr+1
for (word1 in words) {
for (word2 in words) {
if (word1 != word2) {
print parola"" word1","word2
}
}
delete words[word1]
}
}
}
}
}
END{
print FILENAME" "FNR
print i
print max_nr
}
Это содержимое test.txt:
Today Jonathan played soccer with Martin. After the game, Martin and Jonathan were thirsty and then drank a fresh Lemon Soda.
Paolo went to Lisbon with an Easyjet plane. During the trip he met two of his dear friends, Peter and John.
Это результаткоманда:
awk -f script.awk test.txt> output.csv
Lisbon,During
Lisbon,John
Lisbon,Peter
Lisbon,Easyjet
During,John
During,Peter
During,Easyjet
John,Peter
John,Easyjet
Peter,Easyjet
Jonathan,Martin After
Jonathan,Lemon Soda
Jonathan,Martin
Martin After,Lemon Soda
Martin After,Martin
Lemon Soda,Martin
Ожидаемый результат должен быть:
Lisbon,John
Lisbon,Peter
Lisbon,Easyjet
John,Peter
John,Easyjet
Peter,Easyjet
Jonathan,Martin
Martin,Lemon Soda
Jonathan,Lemon Soda
Есть предложения?