寻找特定的模式并在那条线上进行交换

寻找特定的模式并在那条线上进行交换

我有一组文件包含

    VIEW_NAME FOR COLUMN DNAME      ,
    VIEW_OWNER FOR COLUMN DCREATOR   ,
    OBJECT_NAME FOR COLUMN ONAME      ,
    OBJECT_SCHEMA FOR COLUMN OSCHEMA   

因此,无论它在哪里找到FOR COLUMN关键字,都需要交换该行中的第一个和最后一个字母。输出应该是这样的

   DNAME FOR COLUMN VIEW_NAME,
   DCREATOR FOR COLUMN VIEW_OWNER,
   ONAME FOR COLUMN OBJECT_NAME

等等。

答案1

使用awk

awk '$2" "$3=="FOR COLUMN"{a=$1; $1=$4; $4=a}1' file
  • FOR首先比较第二个 ( ) 和第三个字段 ( COLUMN)的值
  • 如果匹配,则交换第一个 ( $1) 和第四个 ( $4) 字段

相关内容