echo $PATH | awk ‘BEGIN{FS=":";OFS=" | "}{$1=$1;print $0}’
echo $PATH | awk ‘BEGIN{RS=":";ORS="^"}{print $0}’

定義
OFS :输出数据的字段分隔符
ORS :输出字段的⾏分隔符

(一)OFS

問題:
第一條命令的$1= $1有什麼用呢?若不加,則以下兩行命令輸出結果是一樣的,即OFS並沒有起作用

echo $PATH | awk ‘BEGIN{FS=":";OFS=" | "}{print $0}’
echo $PATH | awk ‘BEGIN{FS=":"}{print $0}’

結果如下:

Administrator@X8O0ILYDG7L3A0P MINGW64 /
$ echo $PATH | awk 'BEGIN{RS=":";OFS="|"}{print $0}'
/c/Users/Administrator/bin
/mingw64/bin
/usr/local/bin
/usr/bin
/bin
/mingw64/bin
/usr/bin
/c/Users/Administrator/bin
/c/Program Files (x86)/NetSarang/Xshell 6
/c/Program Files (x86)/Common Files/Oracle/Java/javapath
/c/ProgramData/Oracle/Java/javapath
/c/windows/system32
/c/windows
/c/windows/System32/Wbem
/c/windows/System32/WindowsPowerShell/v1.0
/c/strawberry/c/bin
/c/Users/Administrator/AppData/Local/Google/Chrome/Application

思考:
既然沒起作用那麼$1實際上就是輸出第一個字段,那麼我改寫一下$1 = “aa”如下

echo $PATH | awk ‘BEGIN{FS=":";OFS=" | "}{$1=“aa”;print $0}’

輸出:

Administrator@X8O0ILYDG7L3A0P MINGW64 /
$ echo $PATH | awk 'BEGIN{RS=":";OFS="|"}{$1="aa";print $0}'
aa
aa
aa
aa
aa
aa
aa
aa
aa|Files|(x86)/NetSarang/Xshell|6
aa|Files|(x86)/Common|Files/Oracle/Java/javapath
aa

從以上結果來看,實際上是對字段重新操作後定義的OFS才有效,那麼要輸出原內容就要加上$1 = $1 或者 NF+=0。結果如下:

Administrator@X8O0ILYDG7L3A0P MINGW64 /
$ echo $PATH | awk 'BEGIN{RS=":";OFS="|"}{$1=$1;print $0}'
/c/Users/Administrator/bin
/mingw64/bin
/usr/local/bin
/usr/bin
/bin
/mingw64/bin
/usr/bin
/c/Users/Administrator/bin
/c/Program|Files|(x86)/NetSarang/Xshell|6
/c/Program|Files|(x86)/Common|Files/Oracle/Java/javapath
/c/ProgramData/Oracle/Java/javapath
/c/windows/system32
/c/windows
/c/windows/System32/Wbem

另有兩個帖子擴展講的很詳細也很有意思,也給貼出來:
http://www.letuknowit.com/post/171.html
https://blog.csdn.net/xuejinliang/article/details/52250599

(二)ORS

問題:
同OFS也要定義$1 = $1讓0重新計算,但是以下數據處理實際上並沒有加上$1=$1也得到預期結果了,那麼這個定義是該什麼時候加上呢??想不通…

Administrator@X8O0ILYDG7L3A0P MINGW64 /
$ echo $PATH | awk 'BEGIN{RS=":";ORS="^"}{print $0}'
/c/Users/Administrator/bin^/mingw64/bin^/usr/local/bin^/usr/bin^/bin^/mingw64/bin^/usr/bin^/c/Users/Administrator/bin^/c/Program Files (x86)/NetSarang/Xshell 6^/c/Program Files (x86)/Common Files/Oracle/Java/javapath^/c/ProgramData/Oracle/Java/javapath^/c/windows/system32^/c/windows^/c/windows/System32/Wbem^/c/windows/System32/WindowsPowerShell/v1.0^/c/strawberry/c/bin^/c/Users/Administrator/AppData/Local/Google/Chrome/Application^/c/Python37^/c/Python37/Scripts^/c/Python37/Scripts^/c/Program Files/MySQL/MySQL Server 8.0/bin^/d/nodejs^/d/allure-2.13.5/bin^/c/Users/Administrator/AppData/Local/Google/Chrome/Application^/c/Users/Administrator/AppData/Local/Google/Chrome/Application^/c/Python37/Scripts^/c/Python37^/c/Users/Administrator/AppData/Local/Microsoft/WindowsApps^/c/Program Files/Java/jdk1.8.0_91/bin^/c/Program Files/Java/jdk1.8.0_91/jre/bin^/c/Program Files (x86)/Google/Chrome/Application^/c/Users/Administrator/AppData/Local/Google/Chrome^/c/Users/Administrator/AppData/Roaming/npm^/d/Fiddler^/d/VScode/Microsoft VS Code/bin^/usr/bin/vendor_perl^/usr/bin/core_perl^
Administrator@X8O0ILYDG7L3A0P MINGW64 /
$ echo $PATH | awk 'BEGIN{RS=":";ORS="^"}{$1=$1;print $0}'
/c/Users/Administrator/bin^/mingw64/bin^/usr/local/bin^/usr/bin^/bin^/mingw64/bin^/usr/bin^/c/Users/Administrator/bin^/c/Program Files (x86)/NetSarang/Xshell 6^/c/Program Files (x86)/Common Files/Oracle/Java/javapath^/c/ProgramData/Oracle/Java/javapath^/c/windows/system32^/c/windows^/c/windows/System32/Wbem^/c/windows/System32/WindowsPowerShell/v1.0^/c/strawberry/c/bin^/c/Users/Administrator/AppData/Local/Google/Chrome/Application^/c/Python37^/c/Python37/Scripts^/c/Python37/Scripts^/c/Program Files/MySQL/MySQL Server 8.0/bin^/d/nodejs^/d/allure-2.13.5/bin^/c/Users/Administrator/AppData/Local/Google/Chrome/Application^/c/Users/Administrator/AppData/Local/Google/Chrome/Application^/c/Python37/Scripts^/c/Python37^/c/Users/Administrator/AppData/Local/Microsoft/WindowsApps^/c/Program Files/Java/jdk1.8.0_91/bin^/c/Program Files/Java/jdk1.8.0_91/jre/bin^/c/Program Files (x86)/Google/Chrome/Application^/c/Users/Administrator/AppData/Local/Google/Chrome^/c/Users/Administrator/AppData/Roaming/npm^/d/Fiddler^/d/VScode/Microsoft VS Code/bin^/usr/bin/vendor_perl^/usr/bin/core_perl^

bash-記錄修改OFS和ORS讓$0重新計算相关推荐

  1. mysql追溯历史性能问题_【踩坑記錄】記一次MySQL主從復制延遲的坑

    最近開發中遇到的一個MySQL主從延遲的坑,記錄並總結,避免再次犯同樣的錯誤. 情景 一個活動信息需要審批,審批之后才能生效.因為之后活動要編輯,編輯后也可能觸發審批,審批中展示的是編輯前的活動內容, ...

  2. [開發記錄] BBxM 系統建立

    記錄: #1 建立系統檔案 - 使用TI的DVSDK建構基本的linux系統,一開始安裝DVSDK4.03版,安裝好後要先執行 ./setup.sh,設定一些相關環境, 依照setup.sh的scri ...

  3. Linux 使用者身份與群組記錄的檔案

    在我們Linux系統當中,預設的情況下,所有的系統上的帳號與一般身份使用者,還有那個root的相關資訊, 都是記錄在/etc/passwd這個檔案內的.至於個人的密碼則是記錄在/etc/shadow這 ...

  4. MCU VR班會(06)記錄

    MCU VR應用班 <翻轉式> 線上討論課堂(06) 記錄如下: -- 舉行時間: 2016/7/21 晚上 21:00 ~ 22:00 蘇瑞元: 今天要討論的議題有三個 蘇瑞元: 1)是 ...

  5. 銷售訂單 (Sales Order): 資料表及更新記錄

    銷售訂單 建立記錄: (Create) select VBELNfrom VBAKwhere ERDAT GE I_DATUM_FMAND ERDAT LE I_DATUM_TO 更新/刪除記錄: ( ...

  6. SAP歷史更改記錄函數

    SAP中很多地方對資料的操作都會有保存更改歷史記錄,可能過以下兩個函數取得更改歷史記錄: 取得記錄表頭函數 call function 'CHANGEDOCUMENT_READ_HEADERS' ex ...

  7. MCU VR班會(05)記錄

    MCU VR應用班 <翻轉式> 線上討論課堂(05) 記錄如下: -- 舉行時間: 2016/7/15 晚上 20:30 ~ 21:45 蘇瑞元:Hi, 大家好 高煥堂:hello 蘇瑞元 ...

  8. MCU VR班會(07)記錄

    MCU VR應用班 <翻轉式> 線上討論課堂(07) 記錄如下: -- 舉行時間: 2016/7/27 晚上 21:00 ~ 22:00 高煥堂: 我今天在想MCU VR課程的教學內容 高 ...

  9. FS\OFS\RS\ORS的使用

    在linux 中,总是会忘记FS\OFS\RS\ORS的使用 下面一张图非常明晰的显示

最新文章

  1. 玩转不同业务场景,这些RabbitMQ特性会是得力助攻
  2. tf.cast() 张量数据类型转换
  3. [NOI2017]游戏(2-SAT)
  4. Codeforces Round #183 (Div. 2)
  5. C#用WebBrowser与WIN API辅助模拟获取网站完整Cookie
  6. 程序运行时堆区和栈区的分配
  7. html部分位置属性
  8. 面试题-- 什么是偏向锁
  9. return另外一个用法
  10. OpenCV-膨胀cv::dilate
  11. python编程语言-Python简史:开发者的小小副业如何成为全球最热编程语言?
  12. 记一次远程协助的排错案例
  13. TIME-WAIT状态
  14. SQLite数据类型详解
  15. 《Word排版艺术》
  16. 机器学习面试题(上)
  17. 组织机构、权限、角色设计
  18. Linux 配置SSH免密登录
  19. 微信公众平台开发入门教程[2020版]
  20. 如何做好提升领导力培训PPT课件?

热门文章

  1. Wishbone总线快速了解
  2. 关于移动互联网运营的分享总结
  3. win10怎么更新显卡驱动_win10更新失败无限重启怎么办
  4. IE6 Peekaboo(躲躲猫) Bug
  5. DataTable转换为ListT或者DataRow转换为T
  6. 商 务 英 语 常 用 缩 略 语 表
  7. 【洛谷 2958】木瓜的丛林
  8. 阿里云服务器部署(2)---配置EMQX服务器(企业版)
  9. 疫情过后第一次线下考试感想
  10. 【JavaWeb】实现网页验证码