awk не удалось объединить строку с переменной ($PWD)

Простой способ:

направьте ваш скрипт наcolumn -t

$ script.sh | column -t
a                           OK
aa                          OK
aaa                         OK
aaaa                        OK
aaaaaa                      OK
aaaaaaaaaaaaaaaaa           OK
aaaaaaaaaaaaaaaaaaaaaaaaaa  OK
0
15.08.2019, 22:08
2 ответа

PWD является переменной оболочки и поэтому не будет расширяться внутри одинарных кавычек, используемых awk.

awk -v pwd="$PWD" '{print pwd$1}' dirs.txt

Это установит переменнуюpwdawkв значение переменной оболочки PWD, а затем напечатает столбец 1 каждой строки в dirs.txtс этим значением в начале.

Используя GNU awk, вы можете использовать опцию -i inplace, чтобы перезаписать ваш файл выводом, в противном случае вам придется перенаправить его в новый файл и при желании перезаписать им старый файл.

3
28.01.2020, 02:18

Конечно, есть и другие способы сделать это, поэтому, поскольку вы запрашиваете любую команду, которая решает вашу проблему, другим способом может быть:

while read -r line; do echo "${PWD}${line}"; done < "dirs"
1
28.01.2020, 02:18

Теги

Похожие вопросы