Не могли бы вы попробовать следующее (если вы хорошо с awk
):
awk -F'[",]' '
BEGIN{
OFS=","
}
FNR==1{
if(val){
print val
}
val=""
}
/Code/{
val=(val?val OFS:"")$(NF-2)
}
END{
if(val){
print val
}
}' *.txt
Вывод будет следующим.
1,2
7,9,14
РЕДАКТИРОВАТЬ: Поскольку OP немного изменил стиль Input_file в комментариях, поэтому отредактировал код в соответствии с ним сейчас.
awk -F'"' '
BEGIN{
OFS=","
}
FNR==1{
if(val){
print val
}
val=""
}
/data-code/{
val=(val?val OFS:"")$2
}
END{
if(val){
print val
}
}' *.txt
РЕДАКТИРОВАТЬ2: Согласно комментарию OP, OP необходимо напечатать NO
для Input_file, где не найдено совпадений, тогда может помочь следующее.
awk -F'"' -v val="begin" '
BEGIN{
OFS=","
}
FNR==1{
if(val!="begin"){
print val?val:"NO"
}
val=""
}
/data-code/{
val=(val?val OFS:"")$(NF-1)
}
END{
print val?val:"NO"
}' *.txt