小编C0p*_*t0p的帖子

使用 awk 或 sed 连接具有模式的行

我基本上想将查询的名称放在包含 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)

sed awk merge

2
推荐指数
1
解决办法
239
查看次数

当作为变量传递时,sed 将无法识别数字

这个表达:

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)

这里发生了什么?

sed variable

0
推荐指数
1
解决办法
78
查看次数

使用 sed 或 awk 使用一行的前 X 个位置将文件拆分为多个文件

我有一个大文本文件,最多包含 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”。

任何帮助,将不胜感激

sed awk split

0
推荐指数
1
解决办法
79
查看次数

如何连接相交的线直到出现相同的模式

我有一个文件:

 "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.

sed

0
推荐指数
1
解决办法
161
查看次数

标签 统计

sed ×4

awk ×2

merge ×1

split ×1

variable ×1