如何使用 sed 或类似程序从文本文件中每行的开头删除类似的元素?

如何使用 sed 或类似程序从文本文件中每行的开头删除类似的元素?

我有如下文字:

UgxJam3R6oHGHJMrbHx4AaABAg,,hqJGuSXaWcY,UCkhUJbKZIZsARJx7UsX7nw,NAME,https://URLYOUDONTNEEDTOSEE,2023-03-03T22:45:53,Sometextineed,1,false,0,

我想要使​​用sed或其他东西来删除并使其像这样:

https:/blablabl.com/UCkhUJbKZIZsARJx7UsX7nw,NAME,2023-03-03T22:46:53,Sometextineed
*,,*, replaced with url

我对 Linux 的使用还不熟悉,但不太明白它是如何sed工作的。我试过一些东西。

请给我一个我可以复制粘贴的解决方案。

好的,我有一个文件,里面有 (random,,random,) 乘以 10000,我需要删除它。所有行都具有相同的结构。

答案1

在 bash 中只需使用这个:

mystring=UgxJam3R6oHGHJMrbHx4AaABAg,,hqJGuSXaWcY,UCkhUJbKZIZsARJx7UsX7nw,NAME,https://URLYOUDONTNEEDTOSEE,2023-03-03T22:45:53,Sometextineed,1,false,0,
IFS=',' read -ra ADDR <<< "$mystring"
echo "https://blablabl.com/${EX[3]},${EX[4]},${EX[6]},${EX[7]}"

mystring第一行是你的字符串

如果您想在文件中执行此操作,只需运行以下命令:

sed -i "s/^\([^,]*\),\([^,]*\),\([^,]*\),\([^,]*\),\([^,]*\),\([^,]*\),\([^,]*\),\([^,]*\),.*$/https:\/\/blablabl.com\/\4,\5,\7,\8/" /tmp/mytest.txt

/tmp/mytest.txt命令末尾是文件名

相关内容