У меня есть этот скрипт, который предназначен для обрезки поля, указанного в качестве аргумента скрипта.т.е. sh script.sh file.txt "|" 2
#!/bin/bash
filename="$1"
delim="$2"
arg="$3"
gsubber="\"gsub("^[ \t]*|[ \t]*$","",'\$$arg')\""
myout=`nawk -F"$delim" -v fl="$gsubber" \'{ { fl } }1\' OFS="$delim" "$filename"`
echo "$myout"
Таким образом, этот файл 'file.txt' в качестве ввода:
sid|storeNo|latitude
9| gerdy| fd¿kjhn422-405
0000543210 |gfdjk39
gfd|fd||fd
становится этим выводом:
sid|storeNo|latitude
9|gerdy| fd¿kjhn422-405
0000543210 |gfdjk39
gfd|fd||fd
Я получаю эту ошибку: nawk: синтаксическая ошибка в контексте строки источника 1
'<<< отсутствует} nawk: выход из строя в строке источника 1 </p>
Когда кто-то может помочь с предоставлением правильного синтаксиса, у меня не должно возникнуть проблем с расширением его для поддержки нескольких полей.то есть sh script.sh file.txt "|" 2 3
может затем обрезать только 2-е и 3-е поля.
Заранее спасибо!