`cut`と`awk`を使ってデータを抽出してフォーマットする

`cut`と`awk`を使ってデータを抽出してフォーマットする

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

関連情報