Bash
Unix bash/ksh:從特定行的文件中選擇第一個非空格字元
我有文件
file1.txt
,其內容如下:Date List ----------- Quarter Date Year Date Month Date
現在我想從文件的每一行中讀取非空格元素並寫入一個變數。例如,對於第 2 行變數,應該
Quarter Year
只在刪除空格後才包含。我試過:
tail -1 file1.txt > variable1
但它不起作用。
使用
sed
:variable1="$(< inputfile sed -n '3s/ *//p')"
variable1="$([...])"
:在子shell中執行命令[...]
並將其輸出分配給變數$variable
< inputfile
: 將內容重定向inputfile
到sed
’sstdin
-n
: 抑制輸出
sed
命令分解:
3
:斷言僅在輸入的第 3 行執行以下命令
s
: 斷言執行替換
/
: 開始搜尋模式
*
: 匹配零個或多個characters
*
/`: stops the search pattern / starts the replacement string
/
: stops the replacement string (hence actually replacing with nothing) / starts the modifiers
p
: prints only the lines where the substitution succeeded`