次の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