【发布时间】:2018-02-09 19:54:16
【问题描述】:
使用 Bash 命令,我想将文本文件每一行的字段 3 替换为以原始字段 3 作为参数的命令的结果。字段是/-delimited。
输入文件:
./REMOTE_PARENT_DIR/0x134000564f:0x4c:0x0/test_runs/testgsi_O1
./REMOTE_PARENT_DIR/0x134000564f:0x4c:0x0/test_runs/testgsi_O2
...
所需的输出文件(不打印字段 1 和 2,字段 3 将是 Unix 命令的结果,打印剩余字段):
/scratch/000011/rin/test_runs/testgsi_O1
/scratch/000011/rin/test_runs/testgsi_O2
...
将字段 3 转换为普通路径组件的命令:
hostx#lfs fid2path /scratch [0x134000564f:0x4c:0x0]
/scratch/000011/rin
也许使用awk 获取相关字段,然后使用命令替换sed 然后吐出新行?
这会打印出我需要的位,但不确定如何替换到文件的行中:
awk -F "/" '{ system("/bin/lfs fid2path /scratch " $3) }' outfile.70.sample.tmp
【问题讨论】:
-
用简单的循环计算出来,一旦我弄清楚如何将其格式化得体,就会发布。