たとえば、次のようになります。
名前1 2 3 4 5 6 7 8
タブ区切り記号を使用^
2つの列(たとえば、0から始まる場合は7列と8列)を切り替えたいので、次のようにします。
名前1 2 3 4 5 6 8 7
最終的には別の列インデックスにする必要があります。
awkを使ってみましたが、エラーがたくさん発生しました。説明してもらえますか?
私が試したコマンドは次のとおりです。
awk ' { t = $10; $10 = $9; $9 = t; print > "test2.txt"; } ' test.txt
新しいファイルを作成しますが、タブ区切り文字はありません。 (スペース区切り記号を含む)
ベストアンサー1
私はこれをawkする方法がわからないので、ここに単純なbashスクリプトがあります。
#!/usr/bin/env bash
while IFS='' read -r i || [[ -n "$i" ]]; do
cut -f1,2,3 -z <<<"$i"
printf '\t'
cut -f10 -z <<<"$i"
printf '\t'
cut -f5,6,7,8,9 -z <<<"$i"
printf '\t'
cut -f4 <<<"$i"
done <colinput.txt
"-z"切り取りオプションは改行文字を印刷しません。-f1,2,3,4,5,6,8,7
切断しても出力の列位置は変わらないため、可能なオプションはありません。切り取りのデフォルトの区切り記号はタブです。