簡體   English   中英

使用sed或awk比較同一文件中的兩行

[英]compare two lines in the same file using sed or awk

我想比較以匹配模式開頭的行及其下一行

例如DD模式

*DD 05 :(X):-Example
    05 :X:-Example

結果,我只希望這兩行之間有區別:

  (X) 
   X

用模式和line 一行,然后用冒號作為分隔符剪切第二個字段,並將其讀取為變量$a$b

$ read a b <<<$(grep -A1 '*DD' myfile | cut -d':' -f2)
$ echo $a
(X)
$ echo $b
X
sed 'H;x
     /^\*DD/ !d
     s// /
     s/^\[[:blank:]]*\(.*\)\(.*\)\(.*\n\)[[:blank:]]*\1/\2\3/
     s/\(.*\)\(\n.*\)\1$/\2/' YourFile
  • 根據您的模式報告所有文件(為避免在兩個位置設置,請添加一行以將其刪除)
  • posix
  • 嘗試以1 s///嘗試,但是模式向1方向擴展會使其失敗
    • 第二個s ///刪除標題
    • 第三刪除拖車

awk -F:“ {print $ 2}”文件
(X)
X

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM