use*_*632 1 csv bash shell file-processing
在我的Bash shell脚本中,我想从文件中读取一个特定的行; 由:每个部分分隔并将其分配给变量以便稍后处理.
例如,我想阅读第2行中找到的单词.文本文件:
abc:01APR91:1:50
Jim:02DEC99:2:3
banana:today:three:0
Run Code Online (Sandbox Code Playgroud)
一旦我"读取"第2行,我应该能够像这样回应这些值:
echo "$name";
echo "$date";
echo "$number";
echo "$age";
Run Code Online (Sandbox Code Playgroud)
输出将是:
Jim
02DEC99
2
3
Run Code Online (Sandbox Code Playgroud)
为了回显一行文件,我非常喜欢sed:
$ IFS=: read name date number age < <(sed -n 2p data)
$ echo $name
Jim
$ echo $date
02DEC99
$ echo $number
2
$ echo $age
3
$
Run Code Online (Sandbox Code Playgroud)
它使用进程替换得到的输出sed到read命令.该sed命令使用该-n选项,因此它不会打印每一行(默认情况下); 的2p装置"时,它是第2行,打印线"; data只是文件的名称.
| 归档时间: |
|
| 查看次数: |
8522 次 |
| 最近记录: |