将一行中的每个单词分配给一个变量

Suf*_*yan 4 awk shell-script

我对 shell 编程很陌生。我在 macOS 上有一个名为quaternary_splitted.csv的文件。每行有4个字。我想从每一行中取出每个单词并将其分配给一个变量。请在for 循环中建议某种awk命令 我想在我的 shell 程序中进一步使用的这 4 个变量中的每一个的值。

谢谢您的帮助。文件中的几行:

Ta Cr Mo W  
Nb Cr Mo W  
Nb Ta Mo W  
Nb Ta Cr W  
Nb Ta Cr Mo
Run Code Online (Sandbox Code Playgroud)

jes*_*e_b 6

你可以用这样的while read循环来做到这一点:

while read -r col1 col2 col3 col4 trash; do
    something with "$col1"
    something with "$col2"
    something with "$col3"
    something with "$col4"
done < /path/to/quaternary_splitted.csv
Run Code Online (Sandbox Code Playgroud)

这将通读 的每一行quaternary_splitted.csv并将第一列设置为col1,第二列设置为col2,等等。

trash参数用于捕获文件中可能存在且不需要的任何内容。假设您有一行:Nb Ta Cr W what is this doing here?. 没有垃圾,你会得到:

col1=Nb
col2=Ta
col3=Cr
col4='W what is this doing here?`
Run Code Online (Sandbox Code Playgroud)