AWKでbash機能を使用できますか?
サンプルファイル(文字列、int、int、int)
Mike 247808 247809 247810
値を10進数から16進数に変換してみてください。
シェルスクリプトの内部または内部で定義された関数です.bashrc
。
$ awk '{print $1 ; d2h($2)}' file
awk: calling undefined function d2h
input record number 1, file file
source line number 1
ベストアンサー1
次の機能を試してくださいsystem()
。
awk '{printf("%s ",$1); system("d2h " $2)}' file
あなたの場合、コマンドの出力がsystem
呼び出され、d2h 247808
次にprintf
出力に追加されます。
Mike 3C800
編集する:
system
代わりに、私はそれにアクセスする方法を見つけることができsh
ません。しかし、現在bashスクリプトの機能を引き続き使用できます。bash
.bashrc
#!/bin/bash
d2h() {
# do some cool conversion here
echo "$1" # or just output the first parameter
}
export -f d2h
awk '{printf("%s ",$1); system("bash -c '\''d2h "$2"'\''")}' file
注:-f
次の目的で使用されています関数のエクスポート変数ではありません。
編集2:
理由はわかりませんが、Ubuntu 16.04では機能しません。 Ubuntu 14.04で実行されたので、これは奇妙です。