awk '
    root &amp;&amp; $0 != root ".mp3" {printf("%d: %s.flac\n", line, root)}
    /.flac$/ {
        root=$0
        sub(/.flac$/, "", root)
        line = NR
        next
    }
    { root = "" }
' filename


How does it work? 

Starting with the line beginning /.flac$/, foreach line ending with ".flac", create a variable named root containing the line minus the extension. Saves the current line number. Jump to the next line to avoid erasing the root variable just set.

Going to the first line. This expression root &amp;&amp; $0 != root ".mp3" means: root is non-empty AND the current line ($0) is not equal to the value of the root variable plus ".mp3". If this expression evaluates to true, then the current line is not the MP3 file corresponding with the previous FLAC file.

The last line erases the value of the root variable. This part of script is reached only if the current line is not a FLAC file, so we don't want to make the comparison with the next line.

bash script to sort out duplicates in text file
I am currently travelling for faculty interviews. Some professors and other interviewers have asked me where else I have interviewed. Should I tell interviewers where else I've interviewed?

Intuitively I would like to give them less information, but I also don't want to appear guarded and defensive as a person, either.
