bash - 如何使用 awk 将目录添加到变量中的文件列表中?
问题描述
#!/bin/bash
FILES='a.txt
b.txt
c.txt'
OUT_FILES=$(awk -F ' ' \$0=\"foo/bar/\"\$0 <(echo ${FILES}))
echo ${OUT_FILES}
在上面的脚本中,我期望${OUT_FILES}
as 中的文件列表foo/bar/a.txt foo/bar/b.txt foo/bar/c.txt
,但输出是foo/bar/a.txt b.txt c.txt
. 稍后,该${OUT_FILES}
列表提供给另一个命令,带有xargs
. 导致仅将路径添加到列表第一个元素的 awk 表达式有什么问题?
解决方案
引号不见了,这样也会更干净。
$ awk '{print "foo/bar/" $0}' <<< "$FILES"
foo/bar/a.txt
foo/bar/b.txt
foo/bar/c.txt
也许更容易sed
$ sed 's_^_foo/bar/_' <<< "$FILES"
foo/bar/a.txt
foo/bar/b.txt
foo/bar/c.txt
推荐阅读
- javascript - 适用于 PHP 开发人员的 Eclipse 2020-06 - 有没有办法在任务视图中显示 Javascript 任务?
- java - JSchException 找不到消息
- cython - Cython 导入 C++ 运算符:“尚不支持重载运算符 '+='。”
- javascript - 调用对象时自动在对象内部运行函数
- java - 为什么我会在线程“main”java.util.InputMismatchException 中收到此“异常”?
- reactjs - 使用 npx create-react-app 项目创建 React.js
- sql-server - 如何更新来自 FastAPI 服务器的数据更改事件的 React 组件
- java - 有没有办法在 api 级别 25 下做类似 `requestDismissKeyGuard` 的事情?
- python - 在一个数据框中找到离另一个最近的索引
- javascript - 无法访问传递给子组件的道具