我基本上想将查询的名称放在包含 SourceField 的每一行前面。
我试过这个串联方案
awk '/<\^Query/ && p{print p;p=""}{p=p $0}END{if(p) print p}'
Run Code Online (Sandbox Code Playgroud)
但这仅适用于我有多个源字段。发生这种情况时,它将所有行与 SourceField 连接起来:
Query: D Monthly Loan SourceField: LOAD-NO SourceTable: MASTER SourceField: LO
Run Code Online (Sandbox Code Playgroud)
我的数据是:
Query: D Monthly Loan
SourceField: LOAD-NO SourceTable: MASTER
SourceField: LO SourceTable: MASTER
Query: D Monthly Loan
SourceField: HI SourceTable: MASTER2
QUERY: M FORBEARANCE_1
SourceField: LOAN-NO SourceTable: MASTER
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像这样:
Query: D Monthly Loan SourceField: LOAD-NO SourceTable: MASTER
Query: D Monthly Loan SourceField: LO SourceTable: MASTER
Query: D Monthly Loan SourceField: HI SourceTable: MASTER2
Query: M …
Run Code Online (Sandbox Code Playgroud) 这个表达:
FN=27
LN=145
cat $FILENAME | sed -n $FN,$LNp
Run Code Online (Sandbox Code Playgroud)
因以下错误而失败:“sed:-e 表达式 #1,字符 3:意外的‘,’”但是当我使用实际数字时,我得到了预期的结果。没有嵌入特殊字符,也没有尾随或前导空格
cat $FILENAME | sed -n 27,145p
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
我有一个大文本文件,最多包含 2300 个部分。每个部分开始,前一行,“PAGE 1”页码在行的最后,
例子:
T5271-AX1 TITLE DATE
SUB TITLE PAGE 1
LINE1
LINE2
T5271-AX1 TITLE PAGE 2
LINE3
LINE4
SUB TITLE PAGE 3
LINE5
T5271-BX1 DATE
SUB TITLE PAGE 1
LINE1
Run Code Online (Sandbox Code Playgroud)
文件最多 2300 个节,每个节可以有几百页,但节的行尾总是有“PAGE 1”。
文件名包含在“PAGE 1”上方一行的第一个 9-15 个字符的字符串中
我想在“PAGE 1”处拆分文件,并在输出文件的名称中使用 9-15 个字符。
在我的示例中,最终结果将是两个文件:
T5271-AX1
T5271-BX1
Run Code Online (Sandbox Code Playgroud)
我可以很容易地找到页码和标题,但我不知道如何拆分文件并将其输出到一个新文件中,直到下一次出现“PAGE 1”。
任何帮助,将不胜感激
我有一个文件:
"p1"data
"p2"data
"p3"data
"p1"data
"p2"data
"p3"data
"p2"data
"p3"data
"p1"data
Run Code Online (Sandbox Code Playgroud)
我想将所有行与“p1”连接起来,直到遇到下一个“p1”。
"p1"data"p2"data"p3"data
"p1"data"p2"data"p3"data"p2"data"p3"data
"p1"data
Run Code Online (Sandbox Code Playgroud)
引号是字面引号。可能有 1 到 10 组“p2”和“p3” 输入文件有数千行。输出文件应有大约 600 行。
我尝试使用,sed -e'/^"p1/N;s/\n//'
但我需要多次运行它,它最终将“p1”与另一个“p1”连接起来
任何援助将不胜感激。仅供参考,该文件来自 XML 文件。我知道有 xml 工具,但我想使用sed
.