【发布时间】:2021-10-15 13:49:44
【问题描述】:
我正在尝试使用另一列中的值分隔一列字符串,也许举个例子会让您更容易理解。
输入是一个表格,第 2 列中的字符串用逗号分隔,。
第三列是应该输出的字段号,,作为第二列的分隔符。
Ben mango,apple 1
Mary apple,orange,grape 2
Sam apple,melon,* 3
Peter melon 1
输出应如下所示,其中不应输出与星号对应的记录(不输出 Sam 行):
Ben mango
Mary orange
Peter melon
我可以使用 for 循环生成所需的输出,但我认为这很麻烦:
IFS=$'\n'
for i in $(cat input.txt)
do
F=`echo $i | cut -f3`
paste <(echo $i | cut -f1) <(echo $i | cut -f2 | cut -d "," -f$F) | grep -v "\*"
done
是否有任何一种方法可以使用sed 或awk?提前致谢。
【问题讨论】: