使用 Xargs 等待回车键
Use Xargs to wait for enter key
因此,我有一个文件列表,我想使用这些文件来生成一组新的文件。我想一次打开这些组(多个文件)。编辑它们。然后回到终端,回车,打开下一组文件。
我已经开始工作了,但我正在使用一个临时文件来这样做
cat failingAll | awk '{print }' | xargs -I {} -L 1 sh -c "find {} | grep xml | xargs echo;" | perl -pe "s/^(.*)$/open ;read;/g" > command.sh ; sh command.sh
只用 xargs 可以吗?真的,我的意思是没有临时文件。我试过这个
cat failingAll | awk '{print }' | xargs -I {} -L 1 sh -c "find {} | grep xml | xargs open ; read;"
但它不会在组之间暂停,它只是一次打开它们(并使我的 xml 编辑器崩溃。)
尝试这样的操作,当您完成每组文件的编辑后就退出编辑器?
while IFS= read -r dir; do
files=()
while IFS= read -r -d '' xmlfile; do
files+=("$xmlfile")
done < <(find "$dir" -name "*.xml" -type f -print0)
open -W "${files[@]}"
done < <(awk '{print }' failingAll)
假设您不想退出编辑器并假设它可以通过随后调用 open
获取一组新文件,那么以下方法也可能有效:
while IFS= read -u 3 -r dir; do
files=()
while IFS= read -r -d '' xmlfile; do
files+=("$xmlfile")
done < <(find "$dir" -name "*.xml" -type f -print0)
open "${files[@]}"
read
done 3< <(awk '{print }' failingAll)
根据 Etan Reisner 的回答,我发现这也有效
cat failingAll | awk '{print }' | xargs -I {} -L 1 sh -c "find {} | grep xml | xargs open -W"
但它也没有完全满足我的要求,即等待输入。我相信这是因为 xargs 不断向它提供下一行,这打破了 read
命令。
因此,我有一个文件列表,我想使用这些文件来生成一组新的文件。我想一次打开这些组(多个文件)。编辑它们。然后回到终端,回车,打开下一组文件。
我已经开始工作了,但我正在使用一个临时文件来这样做
cat failingAll | awk '{print }' | xargs -I {} -L 1 sh -c "find {} | grep xml | xargs echo;" | perl -pe "s/^(.*)$/open ;read;/g" > command.sh ; sh command.sh
只用 xargs 可以吗?真的,我的意思是没有临时文件。我试过这个
cat failingAll | awk '{print }' | xargs -I {} -L 1 sh -c "find {} | grep xml | xargs open ; read;"
但它不会在组之间暂停,它只是一次打开它们(并使我的 xml 编辑器崩溃。)
尝试这样的操作,当您完成每组文件的编辑后就退出编辑器?
while IFS= read -r dir; do
files=()
while IFS= read -r -d '' xmlfile; do
files+=("$xmlfile")
done < <(find "$dir" -name "*.xml" -type f -print0)
open -W "${files[@]}"
done < <(awk '{print }' failingAll)
假设您不想退出编辑器并假设它可以通过随后调用 open
获取一组新文件,那么以下方法也可能有效:
while IFS= read -u 3 -r dir; do
files=()
while IFS= read -r -d '' xmlfile; do
files+=("$xmlfile")
done < <(find "$dir" -name "*.xml" -type f -print0)
open "${files[@]}"
read
done 3< <(awk '{print }' failingAll)
根据 Etan Reisner 的回答,我发现这也有效
cat failingAll | awk '{print }' | xargs -I {} -L 1 sh -c "find {} | grep xml | xargs open -W"
但它也没有完全满足我的要求,即等待输入。我相信这是因为 xargs 不断向它提供下一行,这打破了 read
命令。