スポンサーリンク

バックスラッシュでソースコードの途中で改行

※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-

awkで、例えば、if文を書いているときに、
条件式が多数に及び、ソースコードの途中で改行をしたい場合があると思います。

そんなときは、バックスラッシュを使うことで改行することができます。

例えば、下記のように、if文があったときに、条件式を改行を入れてコンパクトにする場合です。

		if($1 == 2019 || $1 == 2018 || $2 == 3){
			print $0
		}

下記のように、バックスラッシュで区切ることで改行できます。

		if($1 == 2019 || \
		$1 == 2018 || \
		$2 == 3){
			print $0
		}

スポンサーリンク

サンプルコード

例えば、下記のin.txtがあったとします。

$ cat in.txt 
2018,1
2019,2
2020,3
2021,4
2022,5
2023,6

下記がサンプルコードになります。

$ cat sample.awk 
#!/bin/sh

EOL=$(cat in.txt | wc -l)

cat in.txt | awk -v "EOL=$EOL" '
	BEGIN{
		FS = ","
	}
	{
		if($1 == 2019 || \
		$1 == 2018 || \
		$2 == 3){
			print $0
		}
	}
'

下記が実行結果になります。
$ ./sample.awk 
2018,1
2019,2
2020,3

スポンサーリンク