bash-記錄修改OFS和ORS讓$0重新計算
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重新計算相关推荐
- mysql追溯历史性能问题_【踩坑記錄】記一次MySQL主從復制延遲的坑
最近開發中遇到的一個MySQL主從延遲的坑,記錄並總結,避免再次犯同樣的錯誤. 情景 一個活動信息需要審批,審批之后才能生效.因為之后活動要編輯,編輯后也可能觸發審批,審批中展示的是編輯前的活動內容, ...
- [開發記錄] BBxM 系統建立
記錄: #1 建立系統檔案 - 使用TI的DVSDK建構基本的linux系統,一開始安裝DVSDK4.03版,安裝好後要先執行 ./setup.sh,設定一些相關環境, 依照setup.sh的scri ...
- Linux 使用者身份與群組記錄的檔案
在我們Linux系統當中,預設的情況下,所有的系統上的帳號與一般身份使用者,還有那個root的相關資訊, 都是記錄在/etc/passwd這個檔案內的.至於個人的密碼則是記錄在/etc/shadow這 ...
- MCU VR班會(06)記錄
MCU VR應用班 <翻轉式> 線上討論課堂(06) 記錄如下: -- 舉行時間: 2016/7/21 晚上 21:00 ~ 22:00 蘇瑞元: 今天要討論的議題有三個 蘇瑞元: 1)是 ...
- 銷售訂單 (Sales Order): 資料表及更新記錄
銷售訂單 建立記錄: (Create) select VBELNfrom VBAKwhere ERDAT GE I_DATUM_FMAND ERDAT LE I_DATUM_TO 更新/刪除記錄: ( ...
- SAP歷史更改記錄函數
SAP中很多地方對資料的操作都會有保存更改歷史記錄,可能過以下兩個函數取得更改歷史記錄: 取得記錄表頭函數 call function 'CHANGEDOCUMENT_READ_HEADERS' ex ...
- MCU VR班會(05)記錄
MCU VR應用班 <翻轉式> 線上討論課堂(05) 記錄如下: -- 舉行時間: 2016/7/15 晚上 20:30 ~ 21:45 蘇瑞元:Hi, 大家好 高煥堂:hello 蘇瑞元 ...
- MCU VR班會(07)記錄
MCU VR應用班 <翻轉式> 線上討論課堂(07) 記錄如下: -- 舉行時間: 2016/7/27 晚上 21:00 ~ 22:00 高煥堂: 我今天在想MCU VR課程的教學內容 高 ...
- FS\OFS\RS\ORS的使用
在linux 中,总是会忘记FS\OFS\RS\ORS的使用 下面一张图非常明晰的显示
最新文章
- 玩转不同业务场景,这些RabbitMQ特性会是得力助攻
- tf.cast() 张量数据类型转换
- [NOI2017]游戏(2-SAT)
- Codeforces Round #183 (Div. 2)
- C#用WebBrowser与WIN API辅助模拟获取网站完整Cookie
- 程序运行时堆区和栈区的分配
- html部分位置属性
- 面试题-- 什么是偏向锁
- return另外一个用法
- OpenCV-膨胀cv::dilate
- python编程语言-Python简史:开发者的小小副业如何成为全球最热编程语言?
- 记一次远程协助的排错案例
- TIME-WAIT状态
- SQLite数据类型详解
- 《Word排版艺术》
- 机器学习面试题(上)
- 组织机构、权限、角色设计
- Linux 配置SSH免密登录
- 微信公众平台开发入门教程[2020版]
- 如何做好提升领导力培训PPT课件?