![使用 `cut` 和 `awk` 提取并格式化数据](https://linux22.com/image/58259/%E4%BD%BF%E7%94%A8%20%60cut%60%20%E5%92%8C%20%60awk%60%20%E6%8F%90%E5%8F%96%E5%B9%B6%E6%A0%BC%E5%BC%8F%E5%8C%96%E6%95%B0%E6%8D%AE.png)
我有以下txt文件:
"Firstname","Lastname","Company"
"Alex","Johnson","Alex Corp."
"Baran","Atasoy","Gülerler Ltd."
我想通过使用awk
和/或提取和格式化数据cut
并具有以下格式:
Firstname Lastname
Alex Johnson
Baran Atasoy
我怎样才能实现这个目标?
答案1
用于拆分( )awk
上的字段并替换( ):,
-F,
"
gsub
awk -F, '{gsub(/"/,""); print $1,$2}' file
Firstname Lastname
Alex Johnson
Baran Atasoy
答案2
您可以通过以下方式分配多重播放字段分隔符-F
awk -F[\",] '{print $2,$5}
与相同sed
sed 's/"\|,[^,]\+$//g;s/,/ /'
或者
sed -E 's/"(\w+)","(\w+).*/\1 \2/'
与tr
和相同cut
tr -s ',"' ' ' | cut -d" " -f2-3
最后但不是最后:只是bash builtin's
while IFS=, read a b c
do
echo "${a//\"/} ${b//\"/}"
done
或者可能更复杂
while IFS=[,\"] read a b c d f g
do
echo $b $f
done