gpt4 book ai didi

linux - 在输出 grep 的地方保留新行

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:51 25 4
gpt4 key购买 nike

当我运行 ls 时,我看到以下内容。我想删除 Screen Shot..

的所有实例
10-15
BashStorage
blah.csv
LockScreen.app
NetsuiteBFN
Screen Shot 2017-10-26 at 11.09.08 AM.png
Screen Shot 2017-11-02 at 12.24.13 PM.png
Screen Shot 2017-11-10 at 9.20.33 AM.png
Screen Shot 2017-11-10 at 9.21.29 AM.png
Screen Shot 2017-11-20 at 10.26.24 AM.png
Screen Shot 2017-11-20 at 10.29.18 AM.png
Screen Shot 2017-11-20 at 10.30.40 AM.png
Screen Shot 2017-11-20 at 10.31.55 AM.png
Screen Shot 2017-11-20 at 10.34.11 AM.png
Screen Shot 2017-11-20 at 10.55.34 AM.png
Screen Shot 2017-11-20 at 10.56.44 AM.png
Screen Shot 2017-11-20 at 10.56.54 AM.png
Screen Shot 2017-11-20 at 10.59.20 AM.png
finalResourceUrls.txt
good
lockScreen
lockScreen.zip
ls.txt
x

ls | grep -F 'Screen Shot' 仅在新行

上返回屏幕截图条目

下面的代码试图找到文件 screen 然后为 $i shotfor i in $(ls | grep -F "Screen Shot");做 rm $i;完成

失败是因为它使用了一个空格作为分隔符

我还观察到,当 stdout 是终端时,grep 将打印新行,但是当我重定向到一个文件时,新行将被保留(ls | grep -F "屏幕截图") > shots.txt

但是,如果我将输出设置为变量,则没有新行

shots="$(ls | grep -F "屏幕截图")"

Screen Shot 2017-10-26 at 11.09.08 AM.png Screen Shot 2017-11-02 at 12.24.13 PM.png Screen Shot 2017-11-10 at 9.20.33 AM.png Screen Shot 2017-11-10 at 9.21.29 AM.png Screen Shot 2017-11-20 at 10.26.24 AM.png Screen Shot 2017-11-20 at 10.30.40 AM.png Screen Shot 2017-11-20 at 10.31.55 AM.png Screen Shot 2017-11-20 at 7.01.32 PM.png Screen Shot 2017-11-21 at 11.49.15 AM.png
  1. 如何遍历屏幕截图条目并将其删除?
  2. 如何在 grep 上保留换行符?

编辑:赛勒斯(见评论)对问题 1 有有效的答案。仍在寻找问题 2 的 grep 行为答案

最佳答案

你仍然可以这样做,你只需要指定 IFS (内部字段分隔符)。

shots="$(ls | grep -F "Screen Shot")"
echo $shots
>some_long_one_line_blob

IFS='$\n'
echo $shots
>line
>by
>line
>output

或者你可以将 -E 参数传给 echo 来计算换行符吗?

echo -E "$shots"
>line
>by
>line
>output

关于linux - 在输出 grep 的地方保留新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47422295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com