Linux

當我知道文件的格式時從文件中提取文本

  • March 10, 2019

我正在執行一個腳本,它將輸出一個名為 scServer.scs 的文件,它看起來像這樣:

49138@bber0501u29b.bb2.cluster

2

解決方案 1

流體流動(流利)

解決方案

瞬態結構

7443_bber0501u29b.bb2.cluster

27412@lic-server1.abc.ac.uk

稍後在腳本中我需要引用“49138”和“bber0501u29b.bb2.cluster”,但每次執行腳本時它們都會有所不同。所以在我的腳本生成 scServer.scs 之後,我需要提取這些文本並將它們寫為變數?

如果您的數據始終位於第一行且格式為 user@domain,您可以執行以下操作:

提取第一行並使用shell 參數擴展

firstline=$(head -n1 file)
user=${firstline%@*}
domain=${firstline##*@}

使用讀取和 awk:

read -r user domain < <(awk -F\@ 'NR==1{print $1,$2}' scServer.scs)

將提取第一行scServer.scs並將兩個欄位@用作欄位分隔符,將第一個欄位分配給user變數,將第二個欄位分配給domain變數

引用自:https://unix.stackexchange.com/questions/504948