単一のコマンドで2つの異なるカット出力を結合しますか?

単一のコマンドで2つの異なるカット出力を結合しますか?

次のファイルがあります。

1234
ABCD
EFGH

次のように変換したいと思います。

2341
BCDA
FGHE

実際のファイルには4,000語があるので、これを効率的に実行したいと思います。コマンドを試しましたが、cut -c 2-4,1 file.txt入力とまったく同じ出力が生成されます。私の考えでは、3つの異なるコマンドを使用できるようです。

cut -c 1 file.txt > temp1.txt
cut -c 2-4 file.txt > temp2.txt
// combine the two with paste or pr

...しかし、いくつかの修正を経て何度も実行する必要があるので、単一のコマンドを好みます。したがって、1つのコマンドを実行することは、毎回3つのコマンドを実行するよりもエラーの可能性が低くなります。

2つのcutステートメントを1つにまとめる方法はありますか?それは次のとおりです。

cut -c 1 file.txt | pr (cut -c 2-4 file.txt)

それとももっと良い方法がありますか?

ベストアンサー1

以下を使用して、cut次のpaste行を実行することもできます。

$ cat file
1234
ABCD
EFGH
$ paste --delimiter=''  <(cut file -c2-4) <(cut file -c1)
2341
BCDA
FGHE

おすすめ記事