in reply to Re: Adding back missing newlines between records
in thread Adding back missing newlines between records
perl -pe 's/(?<!\n)\n# file/\n\n# file/g' record_file
I don't see how that is supposed to work. The -p flag creates a while(<>) loop around the code specified for the -e flag(with print; as the last line in the while loop). The s/// operator in your code is going to operate on the $_ variable, and the diamond operator(<>) will assign each line in the file to $_ one line at a time.
As far as I can tell, at some point $_ will be equal to the string "# file\n", and the previous string will have been "hello world\n" (i.e. not "\n" as desired). Your regex is looking for "\n# file" preceded by a "\n". First, because it seems to me that the diamond operator will produce the line "# file\n", your regex won't match because there is no "\n# file" in that line. Second, it looks to me like you are doing a negative lookbehind beyond the start of the string. How is that supposed to work?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Adding back missing newlines between records
by johngg (Canon) on Nov 06, 2009 at 11:29 UTC | |
|
Re^3: Adding back missing newlines between records
by Anonymous Monk on Nov 06, 2009 at 11:27 UTC | |
by 7stud (Deacon) on Nov 06, 2009 at 12:20 UTC | |
by 7stud (Deacon) on Nov 06, 2009 at 12:38 UTC | |
by Anonymous Monk on Nov 06, 2009 at 12:42 UTC | |
|
Re^3: Adding back missing newlines between records
by 7stud (Deacon) on Nov 06, 2009 at 12:06 UTC |