sedコマンドでスペース区切りやCSVの列の順序を入れ替える方法

sedコマンドを使って単語文字列の順書を簡単に入れ替えることができます。
例えば、スペース区切りの文字列群だったり、カンマ区切りの文字列群だったり。
実際には、文字列なしの区切りもあると思うので、
以下紹介の構文では意図した動作にならない場合もあると思いますが、
sedによる文字列の入替えの参考としてください。

関連記事

単語の並び替え(順序の変更)

sedコマンドでは、 \(正規表現\) でヒットした文字列を \1 として使用することがあります。
複数の \(正規表現\) \(正規表現\) \(正規表現\) があった場合、 \1 \2 \3 が対応することになります。

実際に以下で sed コマンドを使って幾つかの動作例を記します。

上記の通り、 \(正規表現\) と \番号 で単語群の入替えを簡単に行うことができます。

スペース区切りで保存されているファイルの列を入れ替える

スペース区切りで保存してあるファイルの内容を列を逆順にしてみます。

$ cat linux.txt 
debian ubuntu centos opensuse
debian ubuntu centos opensuse

一行ごとに何らかの処理を行う場合

一行ごとに読み込み、何らかの処理をする場合は、以下ようになると思います。

for L in `cat data.csv`
do
  何らかの処理
done

この場合は、IFSパラメータを設定しないと意図した動作になりません。
以下リンクの記事を参考にしてください。

以上、sedコマンドを使ってスペース区切りやCSVの列の順序を入れ替える方法の紹介でした。


スポンサーリンク


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-08 (土) 17:17:11